题目描述
移除数组 arr 中的所有值与 item 相等的元素。不要直接修改数组 arr,结果返回新的数组
示例1
输入
复制
[1, 2, 3, 4, 2], 2
输出
复制
[1, 3, 4]
1.遍历
function remove(arr, item) {
var newarr = []
for(i=0;i<arr.length;i++){
if(arr[i] != item){
newarr.push(arr[i]);
}
}
return newarr;
}
知识点:push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。应该从头开始遍历arr数组
首先,题目说不要修改数组arr,所以先申明一个newarr用来保存结果。
遍历arr,把不等于item的值添加到newarr,最后输出newarr。
2.用filter
function remove(arr, item) {
return arr.filter(function(value){
return value != item;
});
}
知识点:filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
语法
array.filter(function(currentValue,index,arr), thisValue)
参数说明
参数描述function(currentValue, index,arr)必须。函数,数组中的每个元素都会执行这个函数 函数参数:
参数描述currentValue必须。当前元素的值index可选。当期元素的索引值arr可选。当期元素属于的数组对象thisValue可选。对象作为该执行回调时使用,传递给函数,用作 "this" 的值。 如果省略了 thisValue ,"this" 的值为 "undefined"