如何添加" arr [i]"在for循环中?

时间:2016-05-27 21:28:36

标签: javascript arrays loops for-loop

如何添加" arr [i] .length"在我的FOR LOOP? arr [0] .length工作正常,但"我"给出错误。我试图循环通过2D数组



 function infiniteLoop(arr) {
   var answer;
   for (let i = 0; i < arr[i].length; i++) {
     answer =+1;
   }
   return answer;
 }


 document.write(infiniteLoop([
   [1, 2, 3],
   [4, 5, 6],
   [7, 8, 9]
 ]));
&#13;
&#13;
&#13;

4 个答案:

答案 0 :(得分:3)

您无法在i实际存在之前要求它查找i的值。你有一个二维数组,所以需要使用嵌套的for循环:

var answer = 0;
for(var i = 0; i < arr.length; i++) {
  for(var j = 0; j < arr[i].length; j++) {
    answer += 1;
  }
}

P.S。您还需要在answer处开始0。您无法将1的值添加到undefined变量。

答案 1 :(得分:1)

你想循环遍历数组的长度,然后使用另一个循环来遍历内部数组元素。

 function infiniteLoop(arr) {
   var answer;
   for (let i = 0; i < arr.length; i++) {
     for (let j = 0; j < arr[i].length; j++) {
       // SOME CODE
     }
   }
   return answer;
 }

答案 2 :(得分:0)

你实际上需要使用两个循环来处理这个问题,因为需要迭代在arr中传递的实际数组,然后另一个循环遍历内部数组的元素:

function infiniteLoop(arr) {
   var answer = 0;
   // Iterate through your array of arrays ([[1,2,3],[4,5,6]], etc.)
   for (let i = 0; i < arr.length; i++) {
       // Now go through each individual array (i.e. [1,2,3], etc.)
       for (let j = 0; j < arr[i].length; j++) {
            answer += 1;
       }
   }
   return answer;
}

如果你想计算数组中元素的数量,可能有更短的非循环替代方案,但这应该适用于你需要做的事情。

答案 3 :(得分:0)

 function array2dStuff(a)
{
    var n = 0;
    for (var i = 0; i < a.length; i++)
    {
        for (var j = 0; j < a[i].length; j++)
        {
            //n += a[i][j];    // for sum of numbers
            n++;               // for number of elements
        }
    }
    return n;
}