繁体   English   中英

了解基本的JavaScript逻辑

[英]Understanding basic javascript logic

我目前正在学习/练习DOM操作,并遍历了本教程/练习表。

https://github.com/lmuntaner/dom_manipulation

我目前对createGrid函数创建的循环感到困惑。 ...函数“ createGrid”已创建并带有一个参数。 该函数创建一个for循环,该循环中嵌套了另一个循环...与第一个循环具有完全相同的语句...为什么要创建单独的循环? 为什么不只有一个for循环? 有人也可以解释吗? (编写此代码的人远远超出了我,但我仍然想了解原因)

    $(function () {
  var rows = 10;
  var cols = 10;
  var cells = [];
  function createGrid(root) {
    for(var i = 0; i < cols; i++) {
      for(var j = 0; j < cols; j++) {
        var cell = $('<div>').addClass('cell');
        cells.push(cell);
        root.append(cell);
      }
    }
  };

  var updateState = function() {
    cells.forEach(function (cell) {
      var randomNum = Math.random() * 2;
      if (randomNum > 1) {
        cell.addClass('active');
      } else {
        cell.removeClass('active');
      }
    });
  }

  setInterval(updateState, 500);

  var $root = $('.container');
  createGrid($root);
});

好吧,实际上我很确定这是开发人员的错误。 如您所想,这没有意义。 只需像这样更改父亲循环:

function createGrid(root) {
    for(var i = 0; i < rows; i++) {
        for(var j = 0; j < cols; j++) {
            var cell = $('<div>').addClass('cell');
            cells.push(cell);
            root.append(cell);
        }
    }
}

因为创建表或网格的常见方法是使用父循环创建行,而使用嵌套循环创建列。 他只是没有意识到自己的错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM