题目要求不改变原数组,所以我们可以声明一个数组a用于保存arr中不同于item的值,最后将a返回。
1.push
function remove(arr, item) {
//声明一个新数组保存结果
var a = [];
//循环遍历
for(var i=0; i < arr.length; i++){
//如果arr[i]不等于item,就加入数组a
if(arr[i] != item){
a.push(arr[i]);
}
}
return a;
}
或
function remove(arr, item) {
var a=[];
arr.forEach(function(e){
if(e!==item){
a.push(e);
}
})
return a;
}
2.splice
function remove(arr,item){
var a= arr.slice(0);//将arr中的元素赋给a
for(var i=0;i<a.length;i++){
if(a[i] == item){
a.splice(i,1);//删除a中第i个元素
i--;
}
}
return a;
}
3.filter()
function remove(arr,item){
return arr.filter(function(ele){
return ele != item;
})
}