этого массива ?
treeData: [
{
name: "Dir 1",
type: "folder",
isEditing: false,
id: 1,
children: [
{
name: "Dir 1-1",
type: "folder",
isEditing: false,
id: 2,
children: [
{
name: "File 1-1-1",
type: "file",
isEditing: false,
id: 3,
},
],
},
{
name: "File 1-2",
type: "file",
isEditing: false,
id: 4,
},
],
},
{
name: "Dir 2",
type: "folder",
isEditing: false,
id: 5,
children: [
{
name: "Dir 2-1",
type: "folder",
isEditing: false,
id: 6,
},
{
name: "File 2-2",
type: "file",
isEditing: false,
id: 7,
},
],
},
{
name: "File 2",
type: "file",
isEditing: false,
id: 8,
},
],
Найти его индекс и splice
Тут вложенность
Рекурсивная функция в помощь
У меня есть рекурсивная функция которая возвращает объект(любой вложенности) на который произошёл клик. Как я могу применить эту функцию для удаления этого объекта из общего массива findElement(childsData, id) { if (childsData) { for (let i = 0; i < childsData.length; i++) { if (childsData[i].id === id) return childsData[i]; const found = this.findElement(childsData[i].children, id); if (found) return found; } } }, delItem(id) { const element = this.findElement(this.treeData, id); const index = this.treeData.findIndex((item) => item.id === element.id); if (index !== -1) this.treeData.splice(index, 1); else { } }, ну и есть функция удаления . Можете подтолкнуть как сделать рекурсивную функцию удаления?
deleteRecursively(obj, toDelete) -> const deleted = deleteFromObj(obj, toDelete); if (deleted) return; obj.children.forEach(item => deleteRecursively(item, toDelete)) Дальше думаю разберётесь
Обсуждают сегодня