在javascript中一次合并2个动态数组1个元素

时间:2018-05-28 14:53:57

标签: javascript jquery arrays

我有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吗?

2 个答案:

答案 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;
&#13;
&#13;

如果A的数组元素多于B

,那么也会有效

&#13;
&#13;
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;
&#13;
&#13;

答案 1 :(得分:0)

您可以遍历较大的数组并将元素推送到迭代中两个数组的结果。这是一种方式:

&#13;
&#13;
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;
&#13;
&#13;