javascript - 将2个数组组合成一个多维数组?

标签 javascript

这是基于我的上一个问题。

我有这些数组:

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 在下面的评论中指出的那样,如果您要将 booleanint 值包含在此解决方案中,这将导致问题。因此,我想提出一项改进,以实现您的目标,同时不会被困难的值和类型绊倒:

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/

相关文章:

javascript - Emberjs Controller 目标指向错误的路线

javascript - 如何在 tinyMCE 中自定义单个文本区域

JavaScript函数结构

javascript - 删除jquery验证引擎特定控件的错误弹出窗口

javascript - 如何针对 IE 进行优化?

javascript - 通过ajax将图片文件等多种数据post到php

javascript - 如何使用 Angular Translate 翻译具有 Angular 绑定(bind)的字符串?

javascript - Angularjs - 在按键上触发 ng-click 方法

php - 充电 前一个变量

javascript - 原型(prototype)事件处理器