@kolaluka

Как правильно сделать изменения в массиве?

const id = 2;
const arr = [{title: 'test', id: 1, children: []}, {title: 'test1', id: 2, children: [{title: 'first children'}]}]


Мне приходит id и нужно по id найти объект в массиве и этому массиву в children добавить новый объект, как такое сделать, не изменяя первоначальный массив?

должно получится что-то типа такого

[{title: 'test', id: 1, children: []}, {title: 'test1', id: 2, children: [{title: 'first children'}, {title: 'second children'}]}]


так я понимаю, мутирую первоначальный массив.
arr.map((item) => if (item.id === id) {
item.children.push({title: 'second children'});
return item
}
 item)


Спасибо.
  • Вопрос задан
  • 61 просмотр
Решения вопроса 1
Serhioromano
@Serhioromano
Web Developer
let r = arr.find(element => element.id === id)
if (r !== undefined) {
    r.children.push({title: 'second children'})
}


или небольшой читинг в одной строке.

(arr.find(element => element.id === id) || {children:[]}).children.push({titel:"new"});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Intspirit Краснодар
от 80 000 до 150 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽