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