Way One:这题由于要求是原地修改,所以关键是不能顺着来改,否则索引顺序将大变;这里选用倒着来就能很好地避免这个问题~~
function removeWithoutCopy(arr, item) {
for(let i=arr.length-1;i>=0;i--){
if(arr[i]===item) arr.splice(i,1);
}
return arr;
}
Way Two:如果想顺着来,也不是不可以,那就得每次给数组后面新加元素,且每次shift()掉第一个元素;有增有减~~
function removeWithoutCopy(arr, item) {
let n=arr.length;
for(let i=0;i<n;i++){
if(arr[0]!==item) arr.push(arr[0]);
arr.shift();
}
return arr;
}