说有阵列数组。
n = [ a = ["foo","bar"],
b = ["foo2","bar2"],
c = ["foo3","bar3"],
d = ["foo4","bar4"],
e = ["foo5","bar5"] ]
循环遍历所有foo
和bar
s的最简单语法是什么?
答案 0 :(得分: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);
}
}
答案 1 :(得分: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) });
答案 2 :(得分:0)
在一个循环中迭代食物和酒吧:
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]);
要遍历所有食物,然后覆盖所有食物:
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]);