题目描述
移除数组 arr 中的所有值与 item 相等的元素。不要直接修改数组 arr,结果返回新的数组
示例1
输入
[1, 2, 3, 4, 2], 2
输出
[1, 3, 4]
1.先说一个错误的,case通过率是66.67%,原因在于改变了原数组。
function remove(arr, item) {
var arr1=arr; //只是把地址给了arr1,引用的还是同一个数组
for(var l=arr1.length-1;l>=0;l--){
if(arr1[l]==item){
arr1.splice(l,1);
}
else l--;
}
return arr1;
}
2.arr.slice(0)
function remove(arr,item){
var newarr = arr.slice(0);
for(var i=0;i<newarr.length;i++){
if(newarr[i] == item){
newarr.splice(i,1);
i--;
}
}
return newarr;
}
3.push
function remove(arr,item){
var newarr = [];
for(var i=0;i<arr.length;i