#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);