Я хочу заменить существующий объект новыми обновленными полями, используя оператор распространения. Но я не получаю правильный результат.
Ниже приведены мои два объекта.
let obj1 = [
{
"id": 1,
"name": "Michel",
"age": 34,
"email": "michel@gmail.com"
},
{
"id": 2,
"name": "Abby",
"age": 40,
"email": "abby@gmail.com"
},
{
"id": 3,
"name": "Gary",
"age": 40,
"email": "abby@gmail.com"
}
]
let newObj = {
"id": 3,
"name": "Gary",
"age": 23,
"email": "gary@gmail.com"
}
Я могу сделать это с .map. Ниже мой код.
let result = obj1.map(item => {
if (item.id === newObj.id) {
return {...item, ...newObj};
}
return item;
});
Но я не хочу запускать цикл и хочу получать только оператором распространения.
Пример для распространения. Который не работает. Это не замена объекта. Вместо этого создаем еще один.
[...obj1, newObj];
Может ли кто-нибудь мне помочь?
КНОПКА JSBIN