嵌套For循环打印多维数组arr [i] [j];惊人的三个数字的输出

时间:2017-05-15 03:00:14

标签: javascript multidimensional-array

我添加了#34; break"为了分析代码。我几乎是初学者,而且 我真的很难理解为什么这个代码文档写了" 135"。 只要我小于arr.length,加一个给i,那个是清楚的。 第二行是指arr [i] .length,即使经过研究,我也不知道那是什么。 也许arr [0]的长度,arr [1]和arr [2] = arr [i] .length,那么2? 然后执行内部for循环我根本不理解。

var arr = [
[1,2], [3,4], [5,6]
];
for (var i=0; i < arr.length; i++) {
    for (var j=0; j < arr[i].length; j++) {
        document.write(arr[i][j]);
        break;
    }
}

2 个答案:

答案 0 :(得分:1)

所以流程:

var arr = [
  [1,2], [3,4], [5,6]
];
for (var i=0; i < arr.length; i++) {
   // Inside this first loop we are dealing with an 
   // item in arr (e.g., [1,2])
   for (var j=0; j < arr[i].length; j++) {
        // Inside this loop we are dealing with an item
        // from the previous loop (e.g, 1)
        // We write the one and then exit the inner loop
        // and move on to the next set of pairs.
        document.write(arr[i][j]);
        break;
   }
}

有时使用变量更容易理解。这相当于:

var arr = [
  [1,2], [3,4], [5,6]
];
for (var i=0; i < arr.length; i++) {
    var pair = arr[i];
    for (var j=0; j < pair.length; j++) {
        var num = pair[j];
        document.write(num);
        break;
    }
 }

答案 1 :(得分:0)

break语句打破循环并在循环后继续执行代码。 (https://www.w3schools.com/js/js_break.asp

在这种情况下,'break'只会从内循环中跳出来。

外循环将执行3次。

你可以像这样模拟所有的执行

i=0;
  j=0; j<arr[0].length;
    document.write(arr[0][0]);    // output 1
    break;                        // break inner loop

i=1;
  j=0; j<arr[1].length;
    document.write(arr[1][0]);    // output 3
    break;                        // break inner loop

i=2;
  j=0; j<arr[2].length;
    document.write(arr[2][0]);    // output 5
    break;                        // break inner loop

```