Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在另一个数组中循环遍历每个数组的每个成员?_Javascript_Arrays - Fatal编程技术网

Javascript 如何在另一个数组中循环遍历每个数组的每个成员?

Javascript 如何在另一个数组中循环遍历每个数组的每个成员?,javascript,arrays,Javascript,Arrays,假设有一个数组 n = [ a = ["foo","bar"], b = ["foo2","bar2"], c = ["foo3","bar3"], d = ["foo4","bar4"], e = ["foo5","bar5"] ] 如果您的示例(fiddle-)中的内部数组中始终有两个东西,那么在所有foos和bars之间循环的最简单语法是什么 for(变量索引=0;索引

假设有一个数组

n = [ a = ["foo","bar"],
      b = ["foo2","bar2"],
      c = ["foo3","bar3"],
      d = ["foo4","bar4"],
      e = ["foo5","bar5"] ]

如果您的示例(fiddle-)中的内部数组中始终有两个东西,那么在所有
foo
s和
bar
s之间循环的最简单语法是什么

for(变量索引=0;索引
对于任意数量的对象,请使用嵌套循环(fiddle-):

for(变量索引=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) });

要在一个循环中迭代foo和bar:

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

for(变量i=0;i
要在所有foo上迭代,然后在所有条上迭代:

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

for(变量i=0;i<2;i++)
对于(var j=0;j
您可以为循环嵌套已测试循环。确切地就像是,在我的脑子里或者别的什么。谢谢你,伙计。
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]);