我有两个数组A
和B
,两个数组都包含很多元素,看起来像这样:
var A = ["A", "B", "C", "D"];
var B = [1, 2, 3, 4];
现在我想要一个C
“合并”A
并B
通过以交替顺序将它们串联在一起的数组,以便
C = ["A", 1, "B", 2, "C", 3, "D", 4]
我尝试了这个:
for (var i = 0; p < 3; i++) {
C = A[i].concat(B[i])
}
但这导致C = "D4"
。
如何通过交替选择每个数组的一个元素来实现合并两个数组?
var l = A.length + B.length,
C = Array(l);
for(var i=0; i<l; ++i)
C[i] = (i%2 ? B : A)[i/2|0];
基本上,它填充C
来自A
或B
取决于i
是偶数还是奇数的项目。
请注意,我用作i/2|0
快捷方式,但仅在我l
小于2 31时才可以使用。为了安全起见,请使用Math.floor(i/2)
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句