Nested JSON Array egy elem módosítása
2021-01-06T17:11:11+01:00
2021-01-07T14:30:26+01:00
2022-08-19T02:02:08+02:00
takiXY
Sziasztok!

Elakadtam egy problémában, ezért kérem a segítségetek

Adott egy hatalmas multi level JSON array-om, ebből egy részlet:

[ { "title": "festészet", "children": [ { "title": "Típusok" }, { "title": "Irányzatok" }, { "title": "Évszakok", "children": [ { "title": "tavasz" }, { "title": "nyár" }, { "title": "ősz" }, { "title": "tél" } ] } ] } ]
Ennek a JSON-nek egyetlen elemét kellene módosítanom, és abból csak a path-t kapom meg. Tehát ha az évszakok közül a tavaszt kell módosítani, akkor "[0,2,0]"

Csináltam egy függvényt:

Object.getNodeElement = function(tree, path) { let node = {}; let obj = tree; for ( let i=0; i<path.length; i++ ) { node = obj[path[i]];
obj = obj[path[i]].children;
} return node; }
De ezzel csak azt értem el, hogy visszadja az adott node-t, ami jó is más esetben, de így nem tudom az eredeti Array-ban módosítani az elemet.

Ti hogyan oldanátok meg?

Köszönöm :)

Mutasd a teljes hozzászólást!
A JS-ben a tömbök referencia szerint adódnak át, tehát a visszaadott node-ot a hívó kedve szerint módosíthatja.

(Ennek viszont az is a következménye, hogy ha szeretnéd az eredeti adatstruktúrát is megőrizni, akkor több szint mélységben kell másolni. Vagy mivel úgyis JSON adatról van szó, átalakítod JSON sztringre, abból visszaolvasod megint objektumba, és kész is a független másolat.)
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd