小编Tys*_*aza的帖子

Javascript对象键值编码.动态设置嵌套值

我正在开发一个小库,可以让我用对象做一些基本的键值编码.说我有以下对象:

var data = { key1: "value1", key2: { nested1: 1, nested2: "wowza!" } };
Run Code Online (Sandbox Code Playgroud)

我有以下JavaScript函数:

var setData = function(path, value) {
    eval("data." + path + "= value;");
};
Run Code Online (Sandbox Code Playgroud)

在使用中:

setData("key1", "updated value1"); // data.key1 == "updated value1"
setData("key2.nested1", 99); // data.key2.nested1 == 99
Run Code Online (Sandbox Code Playgroud)

这是有效的,但是我想在不使用的情况下完成上述操作eval.这是可能的,还是eval最好的方法?

编辑:

注意可以假设您设置的值存在,至少对于路径深度 - 1.我更关心设置现有对象的值.

javascript object key-value-observing key-value-coding

2
推荐指数
1
解决办法
7960
查看次数