我在 javascript 中有 2 个数组。
var A = ['c++', 'java', 'c', 'c#', ...];
var B = [12, 3, 4, 25, ...];
现在从这两个数组中,我想创建另一个数组,例如:
[['c++',12], ['java',3], ['c',4], ['c#', 25] ...];
A
和数组在我的情况下都是B
可变长度的,所以我该怎么做?
我在 javascript 中有 2 个数组。
var A = ['c++', 'java', 'c', 'c#', ...];
var B = [12, 3, 4, 25, ...];
现在从这两个数组中,我想创建另一个数组,例如:
[['c++',12], ['java',3], ['c',4], ['c#', 25] ...];
A
和数组在我的情况下都是B
可变长度的,所以我该怎么做?
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]]
如果您不使用任何第三方库,则可以使用此代码段:
var i = 0
, n = A.length
, C = [];
for (; i < n; i++) {
C.push([A[i], B[i]]);
}
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;
}
我认为使用 hashMap 而不是 2 个数组可能是一个很好的解决方案。
例如,您可以执行以下操作:
var h = new Object(); // or just {}
h['c++'] = 12;
h['java'] = 3;
h['c'] = 4;
看一眼: