2011-07-20 17 views

回答

2

如果你總是在內部陣列正好兩件事情按照你的榜樣(小提琴 - http://jsfiddle.net/pvqtz/):

for (var index = 0; index < n.length; index++) { 
    var foobar = n[index]; 
    var foo = foobar[0]; 
    var bar = foobar[1]; 
    alert(foo + bar); 
} 

對於一個事物的任意數,使用嵌套循環(小提琴 - http://jsfiddle.net/pvqtz/1/):

for (var index = 0; index < n.length; index++) { 
    var innerArray = n[index]; 
    for (var innerIndex = 0; innerIndex < innerArray.length; innerIndex++) { 
     var elem = innerArray[innerIndex]; 
     alert(elem); 
    } 
} 
+0

嵌套循環。究竟。就像我的大腦或其他東西一樣。多謝,夥計。 –

0

如果你的環境支持它,我往往喜歡forEach此:

n.forEach(function(n2) { 
    n2.forEach(function(val) { 
     console.log(val) 
    }) 
}); 

,只是爲它赫克,如果你處理任意深度的嵌套數組,你可以遞歸:

function visit(a, f) { 
    if (Array.isArray(a)) { 
     a.forEach(function(a2) { 
      visit(a2, f) 
     }) 
    } else f(a); 
} 

n = ["foo",["foo1", "bar1"], ["foo2", ["foo3","bar3"]]]; 
visit(n, function(val) { console.log(val) }); 
0

遍歷的Foo和酒吧,一個循環:

var i = -1; 
while (i++ < n.length) 
    alert (n[i][0]+":"+n[i][1]); 

for (var i = 0; i < n.length; i++) 
    alert (n[i][0]+":"+n[i][1]); 

要遍歷所有的Foo,然後在所有酒吧:

var i = -1, j = -1; 
while (i++ < 2) 
    while (j++ < n.length) 
     alert (n[j][i]); 

for (var i = 0; i < 2; i++) 
    for (var j = 0; j < n.length; j++) 
     alert (n[j][i]); 
相關問題