JS面试题3——slice,splice,数组去重,多维数组中的最大值...

  1. slice的作用------用于截取数据------不会影响原数组
javascript 复制代码
<script>
var arr1 = ['a','b','c','d','e'];
var arr2 = arr1.slice(1,3);
console.log( arr2 ); // 打印的结果是['b', 'c']
</script>
  1. splice的作用------可以插入,删除,替换数据------会改变原数组
javascript 复制代码
<script>
var arr1 = ['a','b','c','d','e'];
var arr2 = arr1.splice(1,1); //删除一个数据
console.log( arr2 ); // 返回的是操作的数据 打印的是['b']
console.log( arr1 ); // 饭回的是['a','c','d','e']
var arr3 = arr1.splice(1,1,'你好'); //将c替换为你好
</script>
  1. 数组去重
  1. new Set
javascript 复制代码
<script>
var arr1 = [1,2,2,3,4,1];
console.log( new Set(arr1) ); // 返回的是个对象
/* 利用ES6的Array.from把像数组的东西变成真正的数组 */
console.log( Array.from( new Set(arr1) ) );
/* 利用扩展运算符也可以达到一样的效果 */
console.log( [...new Set(arr1)] );
</script>
  1. indexOf
javascript 复制代码
<script>
var arr1 = [1,2,2,3,4,1];
function unique( arr ){
  var brr = [];
  for( var i=0; i<arr.length; i++){
    if(brr.indexOf(arr[i] == -1 ){
      brr.push( arr[i] );
    }
  }
  return brr;
};
unique( arr1 );
</script>
  1. sort
javascript 复制代码
<script>
var arr1 = [1,2,2,3,4,1];
function unique( arr ){
  arr = arr.sort();
  var brr = [];
  for(var i=0; i<arr.length; i++){
    if( arr[i] !== arr[i-1] ){
      brr.push( arr[i] )
    }
  }
  return brr
};
console.log( unique( arr1 ) );
</script>
  1. 找出多维数组中的最大值
javascript 复制代码
/* 分别找出每个小数组中的最大值并将它们串联起来形成一个新数组 */
<script>
var arr1 = [
  [4,5,1,3],
  [13,27,18,26],
  [32,35,37,39],
  [1000,1001,857,1]
]
function fun(arr){
  var newArr = [];
  arr.forEach((item, index) => {
    newArr.push( Math.max(...item) )
  })
  return newArr;
}
console.log( fun(arr1) ); // 最后打印出[5,27,39,1001]
</script>
  1. 给字符串新增方法实现功能
javascript 复制代码
/* 给字符串对象定义一个addPrefix函数,当传入一个字符串str时,它会返回新的带有指定前缀的字符串 */
/ * 例如 */
console.log("world".addPrefix("hello")) // 打印输出helloworld

<script>
String.prototype.addPrefix = function(str){
  return str + this;
}
'world'.addPrefix()
</script>
  1. 找出字符串出现次数最多的字符以及次数
javascript 复制代码
<script>
var str = 'aaabbbdddddddx';
var obj = {};
for (var i=0; i< str.length; i++){
  var char = str.charAt(i)
  if( obj[char] ){
    obj[char]++;
  }else{
    obj[char] = 1;
  }
}
console.log( obj ); // 此时的obj即是{'a':3, 'b':3, 'd':7, 'x':1}
/* 统计出最大值 */
var max = 0;
for (var key in obj){
  if(max < obj[key] ){
    max = obj [key]
  }
}
console.log(max); // 此时的max打印出来是7
// 找出最大值对应的key
for ( var key in obj ){
  if( obj[key] == max ){
    console.log('最多的字符是-----' + key);
    console.log('出现的次数是-----' + max);
  }
}
</script>
相关推荐
htzyl2063 小时前
前端阶梯——第四十三章、实战二:待办清单To-Do
前端·javascript·html
yilaisai3 小时前
前端开发遇到的一些细节问题整理
vue.js
程序员大阳3 小时前
HTML+CSS+JS对话式实战(1)-开篇:认识我们要做的社团活动发布平台
javascript·css·html·实战·系统·平台·社团活动发布
速易达网络3 小时前
Three.js 动画入门教学:从场景搭建到流畅动效
开发语言·javascript·ecmascript
摹客4 小时前
【3D设计】界面设计中的3D元素:应用场景+5款工具横评(含Three.js)
前端
Hilaku4 小时前
CORS 到底在保护谁?90% 的前端理解错了跨域的本质
前端·javascript·程序员
华玥作者4 小时前
Vue 3 + TypeScript + uni-app 组件库推荐:hy-app(华玥组件库)
vue.js·typescript·uni-app
wno7044 小时前
node.js中使用jquery
前端·node.js·jquery
阿琳a_4 小时前
b-map-viewer:面向 Vue 3 的地图可视化 SDK,从接入到展示再到交互分析
前端·javascript·vue.js·gis·数据可视化·地图
10年前端老司机4 小时前
Agent 商业化困局:热闹的发布会,冷清的付费客户
前端·后端·agent