Динамическое объединение массивов с использованием значений объекта - PullRequest
0 голосов
/ 08 марта 2020

У меня есть следующие массивы:

var scores = [
  { user: "Bob", score: 19 }, 
  { user: "Harry", score: 27 }, 
  { user: "Janelle", score: 35 }
]

var ranks = [
  { name: "Bob", rank: 3 }, 
  { name: "Harry", rank: 2 }, 
  { name: "Janelle", rank: 1 }
]

Как я могу объединить два массива и вернуть массив вроде:

var merged = [
  { name: "Bob", rank: 3, score: 19  }, 
  { name: "Harry", rank: 2, score: 27  }, 
  { name: "Janelle", rank: 1, score: 35  }
]

Соответствие scores соответствующим именам из первый массив?

1 Ответ

2 голосов
/ 08 марта 2020

Вы можете использовать .map() с синтаксисом следующим образом:

const scores = [
  { user: "Bob", score: 19 }, 
  { user: "Harry", score: 27 }, 
  { user: "Janelle", score: 35 }
];

const ranks = [
  { name: "Bob", rank: 3 }, 
  { name: "Harry", rank: 2 }, 
  { name: "Janelle", rank: 1 }
];

const result = scores.map(e => ({...e, rank: ranks.find(r => r.name === e.user).rank}));

console.log(result);

Надеюсь, это поможет!

...