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>
相关推荐
于慨11 小时前
Lambda 表达式、方法引用(Method Reference)语法
java·前端·servlet
石小石Orz11 小时前
油猴脚本实现生产环境加载本地qiankun子应用
前端·架构
从前慢丶11 小时前
前端交互规范(Web 端)
前端
像我这样帅的人丶你还11 小时前
别再让JS耽误你进步了。
css·vue.js
@yanyu66612 小时前
07-引入element布局及spring boot完善后端
javascript·vue.js·spring boot
CHU72903512 小时前
便捷约玩,沉浸推理:线上剧本杀APP功能版块设计详解
前端·小程序
GISer_Jing12 小时前
Page-agent MCP结构
前端·人工智能
王霸天12 小时前
💥别再抄网上的Scale缩放代码了!50行源码教你写一个永不翻车的大屏适配
前端·vue.js·数据可视化
小领航12 小时前
用 Three.js + Vue 3 打造炫酷的 3D 行政地图可视化组件
前端·github
@大迁世界12 小时前
2026年React大洗牌:React Hooks 将迎来重大升级
前端·javascript·react.js·前端框架·ecmascript