У меня есть массив с объектами, которые могут иметь дочерние элементы, дочерние структуры имеют ту же структуру, что и родительские, это просто вложение объектов.
Мне интересно, как я могу удалить один из объектов по ключу. Например, я хочу удалить объект с id: 1 (который вложен в дочерний массив другого объекта)
const data = [
{
id: 2,
children: [
{
id: 1,
children: []
}
]
},
{
id: 3,
children: [],
}
]
Перемещение детей вверх
Возможно ли это? Если объект с дочерними объектами удален, то дочерние объекты перемещаются в корень?
Я пробовал
Я попытался переделать следующую функцию, которая возвращает все идентификаторы из моей структуры данных, поэтому он выбирает идентификатор, а если есть дети, выбирает идентификаторы внутри этих детей. Но как мне удалить объект с таким идентификатором?
export function flattenFindAttribute (data, attribute) {
return data.map(item => [item[attribute], ...flattenFindAttribute(item.children)]).flat()
}