SOURCE

function moveZero(array) {
    const arr = array || [1, 1, 0, 1, 0, 1, 1, 0, 1, 1]
    let left = 0;
    let right = arr.length - 1
    while(left < right) {
        if (arr[left] === 0 && arr[right] > 0) {
            [arr[left], arr[right]] = [arr[right], arr[left]]
            left++
            right--
        } else if (arr[left] > 0 && arr[right] > 0) {
            left++
        } else if (arr[right] === 0 || arr[left] === 0) {
            right--
        }
    }
    // console.log(arr)
}

moveZero()

const arr2 = []
for (let i = 0; i < 1000;i++) {
    if (i % 10 === 0) {
        arr2.push(0)
    } else {
        arr2.push(1)
    }
}
console.time("moveZero1")
moveZero(arr2)
console.timeEnd("moveZero1")

function moveZero2(arr) {
    let left = 0;
    let right = arr.length - 1;
    while (left < right) {
        while (left < right && arr[left] !== 0) {
            left++;
        }
        while (left < right && arr[right] === 0) {
            right--;
        }
        if (left < right) {
            let temp = arr[left];
            arr[left] = arr[right];
            arr[right] = temp;
            left++;
            right--;
        }
    }
    return arr;
}
console.time("moveZero2")
moveZero2(arr2)
console.timeEnd("moveZero2")

function moveZero3(arr) {
  let zeroIndex = 0;
  for (let i = 0; i < arr.length; i++) {
    if (arr[i] !== 0) {
      arr[zeroIndex] = arr[i];
      zeroIndex++;
    }
  }
  for (let i = zeroIndex; i < arr.length; i++) {
    arr[i] = 0;
  }
  return arr;
}

console.time("moveZero3")
moveZero3(arr2)
console.timeEnd("moveZero3")


function moveZero4(arr) {
    let left = 0;
    let right = arr.length - 1;
    while(left < right) {
        while(left < right && arr[left] !== 0) {
            left++
        }
        while(left < right && arr[right] === 0) {
            right--
        }
        if (left <right) {
            [arr[left], arr[right]] = [arr[right], arr[left]]
            left++
            right--
        }
    }
    return arr;
}
console.log(moveZero4(arr2))
console 命令行工具 X clear

                    
>
console