我想使用这样的路径字符串"a.0.b"
为 JSON 设置 JSON 中的值,如下所示:
{
a: [
{
b: 'c'
}
]
}
我想出了这个解决方案,但我想知道是否有更简单的方法来写这个:
function setValue(path, value, json) {
var keys = path.split('.');
_.reduce(keys, function(obj, key, i) {
if (i === keys.length - 1) {
obj[key] = value;
} else {
return obj[key];
}
}, json);
}
所以调用setValue('a.0.b', 'd', {a:[{b:'c'}]})
会将json更改为{a:[{b:'d'}]}