Javascript 如何每隔2个项目交替连接阵列?JS
我有: 我让阵列的concat工作,但一次只能有一个:Javascript 如何每隔2个项目交替连接阵列?JS,javascript,Javascript,我有: 我让阵列的concat工作,但一次只能有一个: var alternatingArrayResult = [array1, array2].reduce(function (r, a) { return a.forEach(function (a, i) { return (r[i] = r[i] || []).push(a); }),
var alternatingArrayResult = [array1, array2].reduce(function (r, a) {
return a.forEach(function (a, i) {
return (r[i] = r[i] || []).push(a);
}), r;
}, []).reduce(function (a, b) {
return a.concat(b);
});
// => alternatingArrayResult = [1, 'a', 2, 'b', 3, 'c', 4, 5, 6, 7, 8, 9];
我想从数组1添加两个项,然后从数组2添加一个项,依此类推
期望输出:
var array1=[1,2,3,4,5,6,7,8,9];
变量array2=['a','b','c'];
var alternatingResultArray=[array1,array2]。还原函数r,a{
返回a.foreacha函数,i{
返回r[i]=r[i]| |[]pusha;
},r;
},[]还原函数a,b{
返回a.concatb;
};
console.logalternatingResultArray 您可以获得一个长度,并迭代推送零件 常数 数组1=[1,2,3,4,5,6,7,8,9], 数组2=['a','b','c'], 结果=[]; 对于i=0,l=Math.maxMath.ceilarray 1.length/2,array2.length;i
console.logJSON.stringifyarrConcatIE;这种模式背后的逻辑是什么?这些字母总是用两个数字隔开吗?如果有两个字母,但只有一个数字呢?模式背后的逻辑是什么?这些字母总是用两个数字隔开吗?如果有两个字母,但只有一个数字怎么办?谢谢,这似乎很有效,但我正试图找出如何使IE11友好-扩展运算符对此不合适,你有什么建议吗?你可以选择Array.prototype.push.applyresult,array1.slicei*2,I+1*2以及第二个数组。谢谢,这似乎是可行的,但我正试图找出如何使IE11友好-扩展运算符对此不合适,你有什么建议吗?你可以使用Array.prototype.push.applyresult,array1.slicei*2,I+1*2以及第二个数组。你可以直接使用flatMap。谢谢,这似乎是可行的,但我正在想办法让这个IE11变得友好-,公寓不适合这样。似乎很合适,但我似乎无法使它与您的代码一起工作。你有什么建议吗?添加了一个与IE兼容的解决方案。你可以直接使用flatMap。谢谢你,这似乎可行,但我正在试图找出如何使这个IE11友好-。对于这个,flat是不合适的。似乎很合适,但我似乎无法使它与您的代码一起工作。您有什么建议吗?添加了与IE兼容的解决方案。
var alternatingArrayResult = [array1, array2].reduce(function (r, a) {
return a.forEach(function (a, i) {
return (r[i] = r[i] || []).push(a);
}), r;
}, []).reduce(function (a, b) {
return a.concat(b);
});
// => alternatingArrayResult = [1, 'a', 2, 'b', 3, 'c', 4, 5, 6, 7, 8, 9];
result = [1, 2, 'a', 3, 4, 'b', 5, 6, 'c', 7, 8, 9];