不使用 splice 等函数,使用双指针交换元素实现
function removeWithoutCopy(arr, item) { var left = 0, right = 0 while(right < arr.length) { if(arr[left] === item && arr[right] !== item) { // 解构写法,也可以自己写 swap [arr[right], arr[left]] = [arr[left], arr[right]] } if(arr[left] !== item) { left++ } right++ } arr.length = left return arr }