我遇到了一种情况,我需要将两个不同数组中的值合并到一个数组中。
我的第一个数组值如下:
[35.3,35.3,35.3,35.3,35.2,33.8,29.8,21.5]
第二个数组值如下:
[10,20,30,40,50,60,70,80]
结果数组:
[[35.3,10],[35.3,20],[35.3,30],[35.4,40],[35.2,50],[33.8,60],[29.8,70],[21.5,80]]
感谢你的帮助。
谢谢。
我遇到了一种情况,我需要将两个不同数组中的值合并到一个数组中。
我的第一个数组值如下:
[35.3,35.3,35.3,35.3,35.2,33.8,29.8,21.5]
第二个数组值如下:
[10,20,30,40,50,60,70,80]
结果数组:
[[35.3,10],[35.3,20],[35.3,30],[35.4,40],[35.2,50],[33.8,60],[29.8,70],[21.5,80]]
感谢你的帮助。
谢谢。
这是纯 javascript 中用于等长数组的简单函数:
var a = [35.3,35.3,35.3,35.3,35.2,33.8,29.8,21.5];
var b = [10,20,30,40,50,60,70,80];
function merge(a, b) {
if (a.length == b.length) {
var c = [];
for (var i = 0; i < a.length; i++) {
c.push([a[i], b[i]]);
}
return c;
}
return null;
}
var c = merge(a, b);
由于您已经想使用一个库,这里有一个使用另一个库的建议(jQuery 并不是真正的非 DOM 相关工具的工具):
http://documentcloud.github.com/underscore/#zip
zip_.zip(*arrays)
将每个数组的值与相应位置的值合并在一起。当您有通过匹配数组索引进行协调的单独数据源时很有用。如果您正在使用嵌套数组的矩阵,则 zip.apply 可以以类似的方式转置矩阵。
_.zip(['moe', 'larry', 'curly'], [30, 40, 50], [true, false, false]); => [["moe", 30, true], ["larry", 40, false], ["curly", 50, false]]
由于您的数组具有相同的大小,因此这里有一个简单的函数来完成这项工作:
function zip(arr1, arr2) {
var arr = new Array(arr1.length);
for(var i = 0; i < arr1.length; i++) {
arr.push([arr1[i], arr2[i]]);
}
return arr;
}
要使其采用最短的数组并忽略另一个数组中的其他元素:
for(var i = 0, len = Math.min(arr1.length, arr2.length); i < len; i++)