微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Javascript 拼接功能无法正常工作

如何解决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 举报,一经查实,本站将立刻删除。