JavaScript でマルチレベル オブジェクト コレクションのメンバーを更新する最良の方法を教えてください。
これが私のコレクションの簡略版です。
this.Steps = [
{ id: 1, text: "test", childSteps:
[
{ id: 2, text: "test"},
{ id: 3, text: "test"},
{ id: 4, text: "test", childSteps:
[
{ id: 10, text: "test"},
{ id: 11, text: "test"}
]}
},
{ id: 5, text: "test"},
{ id: 6, text: "test"},
{ id: 7, text: "test"},
{ id: 8, text: "test"},
{ id: 9, text: "test"}
]
}
];
理想は、次のように呼び出される関数を持つことです。
updateObjectByID(11, 'string to be set');
オブジェクトが 1 レベルしかない場合、これは簡単に実行できます。しかし、マルチレベル コレクションで再帰を使用すると、はるかに難しくなります。
私は現在、コレクション全体を解析し、次のような文字列を構築する関数を使用しています:
this.Steps[0].childSteps[3].childSteps[1].text == "string to be set"
そして、eval()
その文字列で行います。
もっときれいな解決策があるかもしれないと確信しています。
eval を使用すると、クラスを圧縮できなくなります。
どんな助けでも大歓迎です。
前もって感謝します