数组筛选的方法
数组筛选的方法总结
- 循环遍历push进新数组
- 直接使用splice在原数组上操作
- 使用filter过滤(面试官最喜欢的方法)
- 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