Объединить каждый элемент из двух массивов объекта javascript - PullRequest
1 голос
/ 20 марта 2020

Пусть два массива будут:

const names = [{name: "Bla"}, {name: "BlaBla"}];
const ages= [{age: 15}, {age: 20}];

Я хочу, чтобы новый массив был

newArray = [{name: "Bla", age: 15}, {name: "BlaBla", age: 20}]

Ответы [ 2 ]

3 голосов
/ 20 марта 2020

Это известно как операция zip - для которой вы можете использовать Array.map() - в сочетании с объединением объектов, либо через оператор распространения или Object.assign().

Обратный вызов, переданный map(), получит элемент и индекс массива в качестве первых двух аргументов соответственно; Затем вы используете индекс для извлечения значения из другого массива.

const names = [{name: "Bla"}, {name: "BlaBla"}];
const ages= [{age: 15}, {age: 20}];

result = names.map((name, index) => Object.assign({}, name, ages[index]))

console.log(result)

Обратите внимание, что Object.assign() используется с тремя аргументами, первый из которых является пустым объектом; без этого первый аргумент обновляется на месте как побочный эффект

3 голосов
/ 20 марта 2020
const names = [{name: "Bla"}, {name: "BlaBla"}];
const ages= [{age: 15}, {age: 20}];
const newArray = [];

let i = 0;

while (names[i] && ages[i]) {
  newArray.push({ ...names[i], ...ages[i] });
  i += 1;
}

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