function removeWithoutCopy(arr, item) {
for(var i = 0; i < arr.length; i++){
if(arr[i] == item){
//splice方***改变数组长度,当减掉一个元素后,后面的元素都会前移,因此需要相应减少i的值
arr.splice(i,1);
i--;
}
}
return arr;
}
function removeWithoutCopy(arr, item) {
while(arr.indexOf(item)!=-1) {
arr.splice(arr.indexOf(item),1);
}
return arr;
} 用递归的方式处理
function removeWithoutCopy(arr, item) {
let i = arr.indexOf(item)
if(i > -1){
arr.splice(i,1)
return removeWithoutCopy(arr,item)
} else {
return arr
}
} }
ES5:
function removeWithoutCopy(arr, item) {
for(var i=0;i<arr.length;i++){
var a=arr.indexOf(item);
arr.splice(a,1);
}
return arr;
}
ES6:
function removeWithoutCopy(arr, item) {
arr=Array.from(new Set(arr));
var a=arr.indexOf(item);
arr.splice(a,1);
return arr;
}
//new Set()用于数组去重,Array.from()用于将set结构转为数组
function removeWithoutCopy(arr, item) {
for(i=arr.length-1;i>=0;i--){
if(arr[i] === item)
arr.splice(i,1); //splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。
}
return arr;
}
从后往前遍历删除,不会影响原本数组的元素位置。
function removeWithoutCopy(arr, item) { for(var i=0; i<arr.length; i++) { if(item == arr[i]) { arr.splice(i,1); i--; } } return arr; }