說有數組的數組。如何循環訪問另一個數組中的每個數組的每個成員?
n = [ a = ["foo","bar"],
b = ["foo2","bar2"],
c = ["foo3","bar3"],
d = ["foo4","bar4"],
e = ["foo5","bar5"] ]
什麼是通過所有的foo
S和bar
s到循環的最簡單的語法?
說有數組的數組。如何循環訪問另一個數組中的每個數組的每個成員?
n = [ a = ["foo","bar"],
b = ["foo2","bar2"],
c = ["foo3","bar3"],
d = ["foo4","bar4"],
e = ["foo5","bar5"] ]
什麼是通過所有的foo
S和bar
s到循環的最簡單的語法?
如果你總是在內部陣列正好兩件事情按照你的榜樣(小提琴 - 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);
}
}
嵌套循環。究竟。就像我的大腦或其他東西一樣。多謝,夥計。 –
如果你的環境支持它,我往往喜歡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) });
遍歷的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]);
可以嵌套的for循環 – Ibu