不使用 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
} 
京公网安备 11010502036488号