这是基于我的上一个问题。
我有这些数组:
var array1 = new Array ("Pepsi", "Coke", "Juice", "Water");
var array2 = new Array ("35", "17", "21", "99");
我想将它们组合成一个多维数组,如下所示:
[
["Pepsi","35"]
["Coke", "17"]
["Juice","21"]
["Water","99"]
]
我试过这个脚本:
Values=[];
for (i = 0; i < array1.length; i++) {
Values[i] = Array(array1[i], array2[i]);
}
但它给出了这样的结果(正确的值,不正确的名称):
[
["a","35"]
["c","17"]
["E","21"]
["I","99"]
]
最佳答案
var array1 = ["Pepsi", "Coke", "Juice", "Water"],
array2 = ["35", "17", "21", "99"],
result = [], i = -1;
while ( array1[++i] ) {
result.push( [ array1[i], array2[i] ] );
}
正如所写,此解决方案假定您只会使用字符串。正如 @ajax333221 在下面的评论中指出的那样,如果您要将 boolean
或 int
值包含在此解决方案中,这将导致问题。因此,我想提出一项改进,以实现您的目标,同时不会被困难的值和类型绊倒:
var array1 = [false, 0, "Juice", -1],
array2 = ["35", "17", "21", "99"],
result = [];
for ( var i = 0; i < array1.length; i++ ) {
result.push( [ array1[i], array2[i] ] );
}
关于javascript - 将2个数组组合成一个多维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10623635/