我正在开发一个小库,它可以让我对对象进行一些基本的键值编码。假设我有以下对象:
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。我更关心设置现有对象的值。