Tengo un objeto llamado árbol con una propiedad de elementos , que de forma recursiva contiene más elementos, que se muestran con los tipos a continuación.
type Tree = { items: Item[] } type Item = { base: Base; items: Item[] } type Base = { category: string }En Vue, puedo crear un nuevo nodo o modificar uno existente, pero ¿cómo puedo asignar este nodo al lugar que elija?
setItems(emitted: Emitted) { if (!this.tree) return; this.searchandReplaceNode(emitted, this.tree.items); console.log(this.tree.items) }, searchandReplaceNode(emitted: Emitted, treeItems: Item[]) { let currentNode = treeItems; if (emitted.levels.length > 0) { console.log("searching " + emitted.levels[0]); //console.log(items); currentNode = treeItems[emitted.levels[0]].items; emitted.levels.shift(); console.log("remaining levels: " + emitted.levels); this.searchandReplaceNode(emitted, currentNode); } else { console.log("levels consumed. assign emitted items to current node"); currentNode = emitted.items; } },He intentado usar una matriz de niveles, que me dice en qué índice profundizar en cada nivel.
En última instancia, puedo hacer que currentNode sea lo que quiero, pero no puedo hacer que el nodo relevante en this.tree sea lo que quiero.