Map an array to create a new array of pairs

夙愿已清 提交于 2021-01-29 07:08:44

问题


I have two separate arrays and I'm trying to create a new nested array that has values grouped together.

Can I use the map() method and pair each item inside the map method?

There is a similar question here: Map an array of arrays

However, he context is different because I don't have a nested array to begin with.

   var letters = [a, b, c];
   var numbers = [1, 2, 3];

   var lettersAndNumbers = letters.map((letter) => {
       numbers.forEach((number) => {
          return letter, number;
       );
    });
    
    // lettersAndNumbers = [[a, 1], [b, 2], [c, 3]]

Thank you for any tips, hints, or solutions!


回答1:


To do this, use the following

var letters = ['a','b','c'];
var numbers = [1, 2, 3];
var letterAndNumbers = letters.map((letter,index) => {
       return [letter,numbers[index]];
})

And if you print it, you will receive the following output

console.log(letterAndNumbers)
[ [ 'a', 1 ], [ 'b', 2 ], [ 'c', 3 ] ]



回答2:


The second parameter of .map() is Index. Make use of it for retrieve a numbers[i] by that iterating index:

const letters = ["a", "b", "c"];
const numbers = [1, 2, 3];

const lettersAndNumbers = letters.map((a, i) => [a, numbers[i]]);


console.log(lettersAndNumbers)
// lettersAndNumbers = [[a, 1], [b, 2], [c, 3]]



回答3:


I would use a map but here is a reduce just for the sake of it.

var letters = ['a', 'b', 'c'];
var numbers = [1, 2, 3];

var lettersAndNumbers = (letters, numbers) => letters.reduce((results, letter, index) => {
  results.push([letter, numbers[index]]);
  return results;
}, []);

console.log(lettersAndNumbers(letters, numbers));


来源:https://stackoverflow.com/questions/63514644/map-an-array-to-create-a-new-array-of-pairs

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!