我正在研究 Leetcode 第 283 题,移动零。我正在使用 Visual Studio Code 中的调试工具进行检查,但循环仍在运行,并且条件似乎不起作用。它是否与任何调整数组大小/链接列表问题有关?
这是我的代码:
var moveZeroes = function (nums) {
let count = 0;
for (let i = 0; i < nums.length - count; i++) {
if (nums[i] === 0) {
nums.splice(i, 1)
nums.push(0)
i = i - 1
count++
}
}
};
这个可能可以回答我的问题。 循环数组并删除项目,而不中断 for 循环
但我仍然想知道幕后发生了什么, 看来 .splice() 和 .length 的组合可能很危险。