Как произвести слияние массив объектов с другим массивом объектов?

Есть два массива объектов:

const arr1 = [{i:0, w: 2}, {i:0, w: 2},{i:0, w: 2},{i:0, w: 2},{i:0, w: 2},{i:0, w: 2}]
const arr2 = [{i:2, d: 4}, {i:3, g: 2}]

Надо произвести слияние, чтобы в итоге был один массив, но в его объектах содержались значения из объектов другого массива. Слияние начинается с нулевого элемента и пока не закончится короткий массив:

const res =  [{i:0, w: 2, i:2, d: 4},{i:0, w: 2, i:3, g: 2},{i:0, w: 2},{i:0, w: 2},{i:0, w: 2},{i:0, w:2}]
  • Вопрос задан
  • 144 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const merge = (...arrs) =>
  Array.from(
    { length: Math.max(...arrs.map(n => n.length)) },
    (_, i) => Object.assign({}, ...arrs.map(n => n[i]))
  );


const arr = merge(arr1, arr2);

или

const merge = (...arrs) =>
  arrs.reduce((acc, n) => (
    n.forEach((m, i) => Object.assign(acc[i] ??= {}, m)),
    acc
  ), []);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы