在Jquery中以交替顺序合并两个数组

我有两个数组AB ,两个都包含很多elemets,看起来像这样:

 var A = ["A", "B", "C", "D"]; var B = [1, 2, 3, 4]; 

现在我想要一个数组C ,它通过以交替顺序连接它们来“合并” AB

 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 AB项。

注意我使用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);