在javascript中组合2个数组

Posted

技术标签:

【中文标题】在javascript中组合2个数组【英文标题】:Combining 2 arrays in javascript 【发布时间】:2012-07-10 22:23:19 【问题描述】:

我在 javascript 中有 2 个数组。

            var A = ['c++', 'java', 'c', 'c#', ...];
            var B = [12, 3, 4, 25, ...];

现在我想从这 2 个数组中创建另一个数组,例如:

  [['c++',12], ['java',3], ['c',4], ['c#', 25] ...];

在我的情况下,AB 数组都是可变长度的,我该怎么做呢?

【问题讨论】:

把你目前尝试过的代码放上去是个好主意。 What have you tried? How to flatten array in jQuery?的可能重复 这些是您的实际阵列吗?您可能想在元素之间添加逗号! @LinusKleen flatten != zip 【参考方案1】:

Underscore.js 擅长:

_.zip(*arrays)

将每个数组的值与 对应的位置。当您有单独的数据源时很有用 通过匹配数组索引进行协调。如果你在工作 使用嵌套数组矩阵, zip.apply 可以将矩阵转置为 类似的时尚。

_.zip(['moe', 'larry', 'curly'], [30, 40, 50], [true, false, false]);
=> [["moe", 30, true], ["larry", 40, false], ["curly", 50, false]]

【讨论】:

【参考方案2】:

如果你不使用任何第三方库,你可以使用这个sn-p:

var i = 0
  , n = A.length
  , C = [];

for (; i < n; i++) 
    C.push([A[i], B[i]]);

【讨论】:

【参考方案3】:
function Merge(A,B)
    var length = Math.min(A.length,B.length);
    var result = [];
    for(var i=0;i<length;i++)
     result.push([ A[i], B[i] ]) 
    

    return result;

【讨论】:

【参考方案4】:

我认为使用 hashMap 而不是 2 个数组可能是一个很好的解决方案。

例如,您可以执行以下操作:

var h = new Object(); // or just 
h['c++'] = 12;
h['java'] = 3;
h['c'] = 4;

看看:

http://www.mojavelinux.com/articles/javascript_hashes.html

【讨论】:

以上是关于在javascript中组合2个数组的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript,从几个数组中获取所有唯一组合[重复]

如何把2个数组合并为一个数组

输入n个数组,数组长度不等,每个数组取出一个数进行组合,求出所有的组合。

将 JavaScript 字符串解析为 2 个数组

在 JavaScript 中将 2 个数组相乘

1到40任意4数组合,能有多少个组合?