我正在尝试组合两个数组,大多数答案都涉及将第二个数组添加到第一个数组的末尾.我需要将索引合并到索引.
这是示例代码:
let arr1 = ['golf','hockey','tennis'];
let arr2 = ['player1','player2','player3'];
Array.prototype.zip = function (arr) {
return this.map(function (e,i) {
return [ e,arr[i]];
})
};
const arr3 = arr1.zip(arr2);
console.log(arr3);
结果应该是:
['golf','player1','tennis','player3']
上面的代码看起来应该可以工作但不会.如果它可以修复,或交换更好,那将是伟大的…..
最佳答案
您可以使用.reduce()来压缩两个数组:
let arr1 = ['golf','tennis'],arr2 = ['player1','player3'];
let zip = (a1,a2) => a1.reduce((a,c,i) => (a.push(c,a2[i]),a),[]);
console.log(zip(arr1,arr2));
文档: