gpt4 book ai didi

javascript - 动态访问复杂的Javascript对象

转载 作者:行者123 更新时间:2023-12-02 15:39:08 25 4
gpt4 key购买 nike

我有一个 javascript 对象,如下所示:

var obj = { simpleName: "some name"  name: { firstName: "anudeep", lastName : "rentala" }, address: { country: "XZ", state:"DF" } }

我还有另一个像这样的对象:

var foo = { loc = "name.firstName" }

取决于foo.loc值,我必须访问 obj 中的值目的。在这种情况下,我需要访问obj.name.firstname 。到目前为止,我已经尝试过这样的事情:

  var props = foo.loc.split(".");
for(var prop in props)
{
if (obj.hasOwnProperty(prop))
{
alert(obj[prop])
}
}

我的问题是,我现在只能访问 name obj的属性(property)对象,我该如何进入它,例如 name.firstName ,我知道 obj[name][firstName]可以,但是我如何动态地做到这一点?就像将其扩展到 obj["prop1"]["prop2"]["prop3"] . .. .["propn"]

最佳答案

firstName 相比,几乎缺少 firstname,但如果您修复这些内容,那么效果会很好:

var obj = { simpleName: "some name",  name: { firstName: "anudeep", lastName : "rentala" }, address: { country: "XZ", state:"DF" } }
var foo = { loc: "name.firstName" }
var props = foo.loc.split(".");
var output = props.reduce( function(prev,prop) {
if (prev.hasOwnProperty(prop)) {
return prev[prop]
} else {
// however you want to handle the error ...
}
}, obj);
alert(output);

关于javascript - 动态访问复杂的Javascript对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32709563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com