题目:移除数组 arr 中的所有值与 item 相等的元素 ,不要直接修改数组 arr,结果返回新的数组。
(1)filter过滤器
function remove(arr, item) {
var arr1=arr.filter(value=>{
return value!=item
})
return arr1;
}
filter过滤器函数:
- filter用于对数组进行过滤。
- filter() 不会对空数组进行检测。
- filter() 不会改变原始数组
它创建一个新数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
语法:
Array.filter(function(currentValue, indedx, arr), thisValue)
例:大于5的数
nums.filter((num) => {
return num > 5;
});
(2)循环push进一个新数组然后返回
function remove(arr, item) {
var a = [];
for(var i=0;i<arr.length;i++){
if(arr[i] != item){
a.push(arr[i]);
}
}
return a;
}
(3)用Array.forEach()遍历
function remove(arr, item) {
var newArr = []
arr.forEach((it,index)=> {
if(item !==it) {
newArr.push(it)
}
})
return newArr
}
forEach方法中的function回调有三个参数:
第一个参数是遍历的数组内容,
第二个参数是对应的数组索引,
第三个参数是数组本身
[ ].forEach(function(value,index,array){
});
至少有两个参数