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>
相关推荐
前端小小王5 分钟前
React Hooks
前端·javascript·react.js
迷途小码农零零发15 分钟前
react中使用ResizeObserver来观察元素的size变化
前端·javascript·react.js
娃哈哈哈哈呀37 分钟前
vue中的css深度选择器v-deep 配合!important
前端·css·vue.js
旭东怪1 小时前
EasyPoi 使用$fe:模板语法生成Word动态行
java·前端·word
ekskef_sef3 小时前
32岁前端干了8年,是继续做前端开发,还是转其它工作
前端
sunshine6413 小时前
【CSS】实现tag选中对钩样式
前端·css·css3
真滴book理喻3 小时前
Vue(四)
前端·javascript·vue.js
蜜獾云3 小时前
npm淘宝镜像
前端·npm·node.js
dz88i83 小时前
修改npm镜像源
前端·npm·node.js
Jiaberrr4 小时前
解锁 GitBook 的奥秘:从入门到精通之旅
前端·gitbook