下面是一个JavaScript代码片段,可以实现将数组 `num` 中的所有 `0` 移动到数组的末尾,同时保持其他元素的相对顺序不变:
```javascript
let num = [1, 2, 3, 0, 0, 1, 2];
function moveZerosToEnd(arr) {
return arr.filter(function (value) {
return value !== 0;
}).concat(arr.filter(function (value) {
return value === 0;
}));
}
num = moveZerosToEnd(num);
console.log(num); // 输出: [1, 2, 3, 1, 2, 0, 0]
```
这段代码定义了一个名为 `moveZerosToEnd` 的函数,它接收一个数组作为参数,并使用 `filter` 方法返回一个新数组,该数组不包含 `0`。然后使用 `concat` 方法将所有 `0`(通过另一个 `filter` 调用获得)附加到该数组的末尾。最后,我们更新原始 `num` 数组,并使用 `console.log` 输出结果。