gpt4 book ai didi

javascript - 在javascript中访问嵌套对象

转载 作者:太空宇宙 更新时间:2023-11-04 15:27:34 25 4
gpt4 key购买 nike

我正在尝试运行一些 JavaScript,但它不起作用。

我有一个对象,它有两个也是对象的属性。

var people = {
me: {
name: "Hello"
},

molly: {
name: "Molly"
}
};

我正在尝试创建一个使用 for/in 语句和 if 语句来列出人员属性的函数。

var search = function (x) {
for (var a in people) {
if (people.a.name === x) {
return people.a;
}
}
};

所以函数循环遍历people的属性,赋值给变量a。因此 people.a 将等于 people 的属性。然后该函数返回属性 (people.a)。

所以如果我输入 me 作为参数 x,该函数是否应该返回 me 对象的属性?我将这段代码放在 jsLint 和 jsHint 中并通过了,但我决定删除更正,因为它们没有用。

然后我想在浏览器中打印对象属性:

var print = search("me");
document.getElementById("p").innerHTML(print);

我将此链接到一个 html 文档,带有

标记 ID“p”。我已经在 html 文档中测试了 javascript,所以我知道 javascript 文档链接正确。

但代码将不起作用。有人有什么建议吗?

多亏了答案,我现在可以正常工作了。但我认为它只会在屏幕上打印“Hello”,而不是 {name: "Hello"}。

最佳答案

您需要使用people[a],而不是people.a。前者查找具有存储在 a 中的值的名称的属性;后者寻找字面上名为“a”的属性,当然它不存在。

for (var a in people) {
if (people[a].name === x) {
return people[a];
}
}

Fiddle here.

另外,我想你的意思是 search("Hello"),对吧?如果不是,那么它只是 var search = function(x) { return people[x]; }

关于javascript - 在javascript中访问嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18197323/

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