我有2个HTML元素的动态数组
让我们说阵列 A = [1,2,3] ,阵列B = [4,5,6,7,8] (它们具有可以随时间变化的不同长度)
我需要一种方法来合并它们以创建数组C,因此数组C将是A的1个元素的混合,然后是来自B的1个元素,然后是来自A的元素......依此类推,直到它们为止。完成了。
Ex:我需要数组C = [ 1 , 4 , 2 , 5 , 3 , 6 , 7 , 8 ]
我有办法使用javascript或jquery吗?
答案 0 :(得分:2)
一种选择是使用经典的for
循环。使用Math.max
获得更高的长度。
let A = [1, 2, 3];
let B = [4, 5, 6, 7, 8];
let C = [];
for (i = 0; i < Math.max(A.length, B.length); i++) {
if (A[i]) C.push(A[i]); //Push if A[i] exist
if (B[i]) C.push(B[i]); //Push if B[i] exist
}
console.log(C);
&#13;
如果A
的数组元素多于B
let A = [1, 2, 3, 4, 5, 6, 7];
let B = [8, 9, 10];
let C = [];
for (i = 0; i < Math.max(A.length, B.length); i++) {
if (A[i]) C.push(A[i]);
if (B[i]) C.push(B[i]);
}
console.log(C);
&#13;
答案 1 :(得分:0)
您可以遍历较大的数组并将元素推送到迭代中两个数组的结果。这是一种方式:
var A = [1, 2, 3];
var B = [4, 5, 6, 7, 8];
var result = B.reduce((a, item, i) => {
if (A[i]) {
a.push(A[i]);
}
a.push(item);
return a;
}, []);
console.log(result);
&#13;