我遇到过需要将两个不同数组的值合并为一个数组的情况。
My First数组值如下:
[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]]
感谢您的帮助。
感谢。
答案 0 :(得分:2)
以下是纯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);
答案 1 :(得分:0)
由于你已经想要使用一个库,这里有一个使用另一个的建议(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++)