配列形式の文字列パスのみがわかっているオブジェクトにアクセスしたいと思います。
1.) オブジェクトがあり、どこに
root["obj1"]["obj2"] = 1;
(一般的な場合root["obj1"]...["objN"]
)
2.) 既知の文字列 objectPath のみを持っています:
var objectPath = 'root["obj1"]["obj2"]'
3.) オブジェクトを読み取るだけでなく、その値を設定する必要があります。
objectPath = 2;
//so root["obj1"]["obj2"] === 2
私が理解しているように
eval() にはいくつかのオプションがあるかもしれませんが、変数ではなく値を取得します。
ルートのすべてのオブジェクトをループし、「root.obj1.obj2」に変換し (「obj1」は簡単に「space1 を含む obj」になる可能性があるため、そうではありません)、指定された文字列が現在のオブジェクトと等しいかどうかを確認できます。ループ。