Объединить массив объектов в массив, соответствующий значению свойства - PullRequest
0 голосов
/ 30 марта 2020

Я пытаюсь объединить массив с существующим массивом по ключу (id). Есть ли простой способ сделать это?

Например:

people = [{id: 1, name: 'John Doe'}, {id: 2, name: 'Jane Doe'}];
places = [{id: 1, state: 'CA'}, {id: 2, state: 'AK'}];

// expected output I want is
result = [{id: 1, name: 'John Doe', places: {id: 1, state: 'CA'}}, {id: 2, name: 'Jane Doe', places: {id: 2, state: 'AK}'}}];

Как я могу получить идентификатор свойства мест для сопоставления с идентификатором людей, так что в основном идентификаторы совпадают, и их ключи переносятся?

Ответы [ 2 ]

0 голосов
/ 30 марта 2020

Вот способ реализации сценария JS:

const people = [{id: 1, name: 'John Doe'}, {id: 2, name: 'Jane Doe'}];
const places = [{id: 1, state: 'CA'}, {id: 2, state: 'AK'}];

const result = people.map(ppl => {
   ppl.places = places.find(plc => plc.id === ppl.id)
   return ppl;
})
console.log(result)

// ES6 way 


let res = people.map(obj => {
    let data = places.find(item => item.id === obj.id);
    return {...obj, places: data}
});

console.log('ES6 way ......',res)
0 голосов
/ 30 марта 2020
people.forEach(person => person['places'] = places.find(place => place.id === person.id);

Это заполняет ваш массив людей местами

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...