添加colums形成一个二维数组到另一个二维数组
问题描述:
我有2个二维数组(array1和array2),它们是两个表,每个都有5列。添加colums形成一个二维数组到另一个二维数组
我需要通过以获得一个ARRY是与10列
表添加列形式阵列2编辑ARRAY1例如:
array1 [1,1,1,1,1]
[2,2,2,2,2]
[3,3,3,3,3]
array2 [a,a,a,a,a]
[b,b,b,b,b]
[c,c,c,c,c]
new array1 [1,1,1,1,1,a,a,a,a,a]
[2,2,2,2,2,b,b,b,b,b]
[3,3,3,3,3,c,c,c,c,c]
Thnak的很多关于任何意见
答
您可以迭代并使用Array#splice
来连接其他值。
var array1 = [[1, 1, 1, 1, 1], [2, 2, 2, 2, 2], [3, 3, 3, 3, 3]],
array2 = [['a', 'a', 'a', 'a', 'a'], ['b', 'b', 'b', 'b', 'b'], ['c', 'c', 'c', 'c', 'c']];
array1.forEach(function (a, i) {
Array.prototype.splice.apply(a, [a.length, 0].concat(array2[i]));
});
console.log(array1);
答
的情况下,两个数组有相同的长度,那么你可以放心地使用这个
var arr1 = [[1,2,3], [4,5,6], [7,8,9]];
var arr2 = [["a","b","c"], ["d","e","f"], ["g","h","i"], ["j", "k","l"]];
var narr = [];
for(var ii = 0, len = Math.min(arr1.length, arr2.length); ii < len; ii++) {
narr[ii] = arr1[ii].concat(arr2[ii]);
}
,长度等于最小长度,这将创建一个新的数组两个阵列arr1 & arr2
的结果将是:
[1,2,3,"a","b","c"]
[4,5,6,"d","e","f"]
[7,8,9,"g","h","i"]
,如果你不知道它们具有相同的长度,你可以简单地改变这段代码
var arr1 = [[1,2,3], [4,5,6], [7,8,9]];
var arr2 = [["a","b","c"], ["d","e","f"], ["g","h","i"], ["j", "k","l"]];
var narr = [];
for(var ii = 0, len = Math.max(arr1.length, arr2.length); ii < len; ii++) {
narr[ii] = arr1[ii] ? arr1[ii].concat(arr2[ii]) : arr2[ii];
}
结果将是
[1,2,3,"a","b","c"]
[4,5,6,"d","e","f"]
[7,8,9,"g","h","i"]
["j","k","l"]
+0
谢谢!既然你正确地质疑数组的相同长度,我有一个更复杂的问题^ _^....你认为在连接之前匹配一个列的2个数组可能是可能的吗? (像SQL连接功能) – d4rk5h4rk
+0
@用户欢迎..我没有得到你的意思? –
谢谢很多,它工作得很好,我自己尝试了forEach函数,但似乎我无法拿出一个工作代码。非常感谢! – d4rk5h4rk