Javascript ES6-映射多个数组

Javascript ES6-映射多个数组,javascript,ecmascript-6,Javascript,Ecmascript 6,JavaScript 6中是否有允许映射多个数组的功能 类似拉链的东西: var myFn = function (a, b) { console.log(a, b);} var arr1 = ['a', 'b', 'c']; var arr2 = [1, 2, 3]; arr1.map(myFn, arr2); // imaginary syntax. // prints : // a 1 // b 2 // c 3 不幸的是,没有。您正在寻找的通常称为zip

JavaScript 6中是否有允许映射多个数组的功能

类似拉链的东西:

 var myFn = function (a, b) { console.log(a, b);}
  var arr1 = ['a', 'b', 'c'];
  var arr2 = [1, 2, 3];

  arr1.map(myFn, arr2); // imaginary syntax.
  // prints :
  // a 1
  // b 2
  // c 3

不幸的是,没有。您正在寻找的通常称为
zip
zipWith
。参考lodash的实现:

正如另一个答案所指出的,这通常被称为
zip
。它可以实现为:

let zipped = arr1.map((x, i) => [x, arr2[i]]);
或者作为一种功能,基本上:

let zip = (a1, a2) => a1.map((x, i) => [x, a2[i]]); 
这样你就可以:

zip(["a","b","c"], [1,2,3]); // ["a", 1], ["b", 2], ["c", 3]

您还可以使用
reduce
获得所需的结果:

var arr1 = ['a', 'b', 'c'];
var arr2 = [1, 2, 3];

arr1.reduce((acc, current, index) => {
   console.log(current, arr2[index])
   return [...acc, current, arr2[index]]
}, [])

// a 1
// b 2
// c 3
// returns ["a", 1, "b", 2, "c", 3]

啊。我知道lodash,但我现在不能用。您是否有缺少该功能的来源?(我知道很难)不,我不是要密码?你怎么知道它不见了?显然,ES6标准中没有表示“缺少的特性”。所以你们有一个参考点,它丢失了吗?明白了!这里有一个链接,指向MDN上的
Array
。它列出了
阵列上可用的所有方法。prototype
,您会发现您正在寻找的功能不存在。谢谢,我会尽快接受您的答案。这似乎已经回答了问题: