基于索引合并JavaScript数组而不使用.concat

前端之家收集整理的这篇文章主要介绍了基于索引合并JavaScript数组而不使用.concat前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在尝试组合两个数组,大多数答案都涉及将第二个数组添加到第一个数组的末尾.我需要将索引合并到索引.

这是示例代码

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));

文档:

> Array.prototype.reduce()
> Arrow Functions
> Comma Operator

猜你在找的JavaScript相关文章