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

Mar*_*den 5 javascript arrays

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

这是示例代码:

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);
Run Code Online (Sandbox Code Playgroud)

结果应该是:

['golf', 'player1', 'hockey', 'player2', 'tennis', 'player3']
Run Code Online (Sandbox Code Playgroud)

上面的代码看起来应该可以工作但不会.如果它可以修复,或交换更好,那将是伟大的.....

Moh*_*man 3

您可以使用.reduce()压缩两个数组:

let arr1 = ['golf', 'hockey', 'tennis'],
    arr2 = ['player1', 'player2', 'player3'];

let zip = (a1, a2) => a1.reduce((a, c, i) => (a.push(c, a2[i]), a), []);

console.log(zip(arr1, arr2));
Run Code Online (Sandbox Code Playgroud)

文件: