在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] ...];
在我的情况下,A
和 B
数组都是可变长度的,我该怎么做呢?
【问题讨论】:
把你目前尝试过的代码放上去是个好主意。 What have you tried? How to flatten array in jQuery?的可能重复 这些是您的实际阵列吗?您可能想在元素之间添加逗号! @LinusKleenflatten
!= 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个数组的主要内容,如果未能解决你的问题,请参考以下文章