javascript - [JS]更改多级对象值

标签 javascript json

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/

相关文章:

java - JSON 格式的字符串到字符串数组

java - jackson 在通用列表中读取 json

javascript - 字符串数组因意外 token javascript 引发错误

JavaScript:区分DOM元素对象和Event对象

javascript - 如何在第一次单击后停止执行 jQuery 代码块

java - Android 可打包列表<String[]>

javascript - 如何动态生成图表的日期/时间值?

javascript - 如何用php或js包裹图形纹理?

java - Google Chart JSON 问题 - Java

json - 如何使用 PowerShell 更新 JSON 文件