var obj = {
a:{
value: 1
}
}
var str = 'a.value';
obj[str] = 'work';
console.log(obj);
我有这段代码,我需要使用字符串更改对象的值
最佳答案
递归解决
var obj = {
a: {
value: 1
}
}
var str = 'a.value';
function change(obj, prop, newValue) {
var a = prop.split('.');
return (function f(o, v, i) {
if (i == a.length - 1) {
o[a[i]] = v;
return o;
}
return f(o[a[i]], v, ++i);
})(obj, newValue, 0);
}
var result = change(obj, str, 'work');
console.log(JSON.stringify(obj, 0, 2));
关于javascript - [JS]更改多级对象值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35759594/