如何解决Javascript 拼接功能无法正常工作
这里相对较新的程序员。我有一个用 Javascript 编写的功能齐全的俄罗斯方块游戏。我在使用最终函数时遇到问题 - 在删除填充有颜色的行时 splice 没有按预期工作。我确定我遍历数组的方式可能有问题,但我无法解决这个问题,如果有人可以提供一些建议,我正在徘徊。这是我当前的函数,每次形状与另一个形状碰撞时都会调用该函数:
for(let y = arena.length-1; y < 0; y--){
for(let x = 0; x < arena[y].length; x++){
if (arena[y][x] === 0) {
continue;
}
}
const row = arena.splice(y,1)[0].fill(0);
arena.unshift(row);
y++;
};
}
解决方法
为你修好了。你有几个概念错误:
function arenaSweep() {
for(let y = arena.length-1; y >= 0; y--){
const row = arena[y];
let filled = true;
for(let x = 0; x < row.length; x++){
if (row[x] === 0) {
filled = false;
break;
}
}
if (filled) {
arena.splice(y,1);
row.fill(0);
arena.unshift(row);
y++;
}
};
}
对于反向循环,for 循环中的条件有错误的方向(y = 0)。
接下来,您假设 continue
会跳出内部循环,因此您可以开始检查下一行;然而,它是中断当前循环。继续只是让您移动到嵌套循环的下一次迭代。
我还通过减少数组调用进行了一些优化。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。