如何通过字符串键获取嵌套JavaScript对象属性的值

7

我想通过这个键从嵌套的JavaScript对象中获取一个值。

var t = "cont.model.Inspection.InspectionName";

如何直接通过字符串键获取嵌套对象的值?
我尝试使用eval(t),但它返回null,但是在控制台上运行时此键具有值“A”。
1个回答

15
你可以使用帮助函数来实现这一点,例如:

你可以使用帮助函数来实现这一点,例如:

var data = {
    cont: {
        model: {
            Inspection: {
                InspectionName: "Hello world"
            }
        }
    }
};

function getNestedValue(obj, key) {
    return key.split(".").reduce(function(result, key) {
       return result[key] 
    }, obj);
}

console.log(getNestedValue(data, "cont.model.Inspection.InspectionName"));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接