在Jquery中以交替顺序合并两个数组
我有两个数组A
和B
,两个都包含很多elemets,看起来像这样:
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
基本上,它根据i
是偶数还是奇数来填充C
A
或B
项。
注意我使用i/2|0
作为快捷方式,但它只能工作i l
严格小于2 31 。 如果您想要安全,请使用Math.floor(i/2)
。
var C = []; for (var i = 0; p < 3; i++) { C.push(A[i]); C.push(B[i]); }
您可以将reduce和concat一起用于此:
var A = ["A", "B", "C", "D"]; var B = [1, 2, 3, 4]; var result = A.reduce(function(prev, curr) { return prev.concat(curr, B[prev.length / 2]); }, []); alert(result);