javascript - 二维数组 For 循环语法的困难

标签 javascript arrays for-loop multidimensional-array

我有一些代码如下所示,我明白它在做什么,但我不明白部分语法。我想知道是否有人可以向我解释一下。基本上,代码用 0 到 2 之间的随机整数数组填充 2D 数组。我不明白的是,为什么我要在第二个 for 循环之后将“result[i][j]”放在下面。为什么我不直接把 result[j] 代替。我在网上找到了这段代码,知道它做了什么,但我还是不明白那一点语法。

    function buildArray(width, height){
    var result= [];

    for (var i = 0 ; i < width; i++) {

        result[i] = [];

        for (var j = 0; j < height; j++) {
            result[i][j] = Math.floor(Math.random() * 3);
            console.log(result[i][j]);
        }
    }
    return result;
}

最佳答案

假设您将 widthheight 值传递给函数 3...

buildArray(3, 3);

您可以将宽度值视为代表“列”的数量,将高度值视为代表每列中“项目”的数量。

在第一个 for 循环的第一次迭代中,结果 有一个列。因为此时 i 为零,我们可以说...

result[0] = new Array();

数组为空,但随后第二个 for 循环开始发挥作用。

第二个 for 循环填充新调用的数组,在本例中使用 3 个随机生成的整数。

假设第二个 for 循环的第一次迭代生成整数“2”,第二次迭代生成“0”,第三次迭代生成“1”。这意味着 resutl[0] 现在看起来像这样......

result[0] = [2, 0, 1];

...这样...

result[0][0] = 2;
result[0][1] = 0;
result[0][2] = 1;

然后,i 递增,并调用位于 result[1] 位置的新数组,然后用 3 个项目填充该数组。等等等等

结果中第二个括号中的值表示“height”数组中值的索引位置,该数组本身由结果中的索引位置指示code> 数组的第一个括号。

在示例结束时,结果将是一个length = 3的数组(三个数组),每个数组包含三个随机生成的整数。

尝试用这样的东西替换console.log()...

console.log('result['+i+']['+j+'] = ' + result[i][j]);

...更好地了解正在生成的随机数的索引位置。

您也可能想看看:Creating a custom two-dimensional Array @ javascriptkit.com

关于javascript - 二维数组 For 循环语法的困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34759352/

相关文章:

php - 如何从 MySQL 列中提取数据并将其放入单个数组中

javascript - 依次渲染多个 iframe

javascript - 绕过 event.stopPropagation

c - 动态分配内存有必要用new吗?

javascript - 尝试获取 str 中每个字符的编号

Java:Android:SQLite:使用 For 循环执行多次插入

python - 在keras中表示多个输入的简单方法?

javascript - 如何在嵌套函数中管理全局变量

javascript - 如何在 Stencil.js 中使用外部第三方库

c - 有条件地列出字符串数组