2016-05-27 7 views
0

Wie füge ich "arr [i] .length" in meine FOR LOOP ein? arr [0] .length funktioniert gut, aber "i" gibt einen Fehler aus. Ich versucheWie füge ich "arr [i]" in eine for-Schleife ein?

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] 
 
]));

+3

mit welcher Länge möchten Sie vergleichen? das macht keinen Sinn – Amit

Antwort

1

Sie möchten sich über die Länge des Arrays in einer Schleife durch eine 2D-Arrays in einer Schleife, dann eine weitere Schleife verwenden, um durch die inneren Array-Elemente zu gehen.

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; 
} 
3

Sie können nicht - du es bist zu fragen für den Wert von i zu suchen, bevor i tatsächlich existiert. Sie haben ein zweidimensionales Array und müssen daher verschachtelte For-Schleifen verwenden:

P.S. Sie müssen auch answer unter 0 starten. Sie können den Wert 1 nicht zu einer undefined Variablen hinzufügen.

0

Sie müssen eigentlich diese mit zwei Schleifen zu handhaben als eine durch Ihre tatsächliche Array zu durchlaufen benötigen, die in arr übergeben wurde und dann könnte ein weiterer durch die Elemente des inneren Arrays durchlaufen:

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; 
} 

Es gibt wahrscheinlich kürzere Alternativen ohne Schleife, wenn Sie die Anzahl der Elemente in Ihrem Array zählen möchten, aber dies sollte für das funktionieren, was Sie tun müssen.

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; 
} 
Verwandte Themen