React изменение данных в массиве
Пишу приложение на react,и столкнулся с проблемой.Есть массив обьектов, у которых есть свои вложенности, у этих вложенностей есть свои вложенности и т.д. На скрине примерная структура того как должно быть. Суть в том, что когда получим данные с бека, нужно в обьект там где value: 'value_children_2', добавить поле children(которое получаем с бека),первая часть проверки отрабатывает так как надо, проблема начинается после "else", попросту не добавляет новое значение во вложеность
let id = allegroFields.active_id
let filterOption = optionsAllegro.filter(el => el.value === id)
let newOptiopns = suc.allegroCategories.data
let modifyOptions;
if (filterOption.length === 1) {
modifyOptions = optionsAllegro.map(el => {
if (el.value === id) {
return {
...el,
children: newOptiopns.map(child => {
return {
value: child.id,
label: child.name,
isLeaf: child.isLeaf,
fields: child?.fields
}
})
}
}
return el
})
} else {
modifyOptions = optionsAllegro.map(el => {
if (el.children) {
el.children.map(child => {
if (child.value === id) {
return {
...child,
children: newOptiopns.map(child2 => {
return {
value: child2.id,
label: child2.name,
isLeaf: child2.isLeaf,
fields: child2?.fields
}
})
}
}
return child
})
}
return el
})
}
setOptionsAllegro(modifyOptions)
}
})
вот функция которая отвечает за эту реализацию.