Как добавить массив в последний массив, индексированный внутри объекта?

#javascript #arrays #object #append #push

#javascript #массивы #объект #добавить #толкать

Вопрос:

У меня есть следующий объект:

 [
    { id: 1 },
    { id: 2 },
    { id: 3 }
]
  

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

Новый элемент массива:

 { name: "Hello Id 3" }
  

Первый объект с добавленным вторым:

 [
    { id: 1 },
    { id: 2 },
    { id: 3, name: "Hello Id 3" }
]
  

Есть идеи?

Заранее спасибо!

Ответ №1:

Использование Object.assign() — это один из способов объединить свойства двух объектов

 const data = [
    { id: 1 },
    { id: 2 },
    { id: 3 }
]

const obj = { name: "Hello Id 3" };

Object.assign( data[data.length-1], obj);

console.log(data)  

Комментарии:

1. Оба ответа превосходны, но я выбираю этот из-за его практичности.

Ответ №2:

Вы можете использовать Array.length (-1), чтобы найти индекс последнего объекта в массиве, а затем добавить к нему элементы нового объекта:

 let objs = [
    { id: 1 },
    { id: 2 },
    { id: 3 }
];

const name = { name: "Hello Id 3" };

const idx = objs.length - 1;
objs[idx] = { ...objs[idx], ...name };
console.log(objs);