js面试总结(2)— 数组筛选的方法

399 阅读1分钟

数组筛选的方法

数组筛选的方法总结

  1. 循环遍历push进新数组
  2. 直接使用splice在原数组上操作
  3. 使用filter过滤(面试官最喜欢的方法)
  4. sort排序后,splice截取对应长度

①循环遍历push进新数组

创建一个空数组,遍历原数组,当元素值满足条件时,push进新数组

var arr = [1, 100, 1, 100, 1, 100]
var temp = []
for(var i = 0; i < arr.length; i++){
    if(arr[i] >= 100){
        temp.push(arr[i])
    }
}

console.log(temp) // [100, 100, 100]

特点:最简单易懂的方法

②直接使用splice在原数组上操作

直接遍历数组,当元素值不满足条件是,使用splice删除此元素

var arr = [1, 100, 1, 100, 1, 100]
for(var i = 0; i < arr.length; i++){
    if(arr[i] < 100){
        arr.splice(i, 1);
        i--;
    }
}

console.log(arr) // [100, 100, 100]

③使用filter过滤(面试官最喜欢的方法)

创建一个变量,接收原数组使用filter过滤后产生的新数组。(filter不会改变原数组,但会产生一个新数组)

var arr = [1, 100, 1, 100, 1, 100]
var temp = arr.filter((item) => item >= 100)

console.log(temp) // [100, 100, 100]

特点:代码简介,面试官最喜欢的方法

④sort排序后,splice截取对应长度

先将原数组排序,然后遍历原数组,当数组内元素第一次满足条件时,使用splice截取对应的长度,跳出循环

var arr = [1, 100, 1, 100, 1, 100, 100, 100]
arr.sort()
for(var i = 0; i < arr.length; i++){
    if(arr[i] >= 100){
        arr.splice(0, i)
        break
    }
}

console.log(arr) // [100, 100, 100, 100, 100