オブジェクトを使用して基本的なキー値のコーディングを行うことができる小さなライブラリに取り組んでいます。次のオブジェクトがあるとします。
var data = { key1: "value1", key2: { nested1: 1, nested2: "wowza!" } };
そして、次の JavaScript 関数があります。
var setData = function(path, value) {
eval("data." + path + "= value;");
};
そして使用中:
setData("key1", "updated value1"); // data.key1 == "updated value1"
setData("key2.nested1", 99); // data.key2.nested1 == 99
これは機能しますが、を使用せずに上記を達成したいと思いeval
ます。これは可能ですか、それともeval
最善の方法ですか?
編集:
少なくともパスの深さ-1については、設定している値が存在すると想定できることに注意してください。既存のオブジェクトの値の設定についてもっと心配しています。