gpt4 book ai didi

javascript - 迭代对象属性/键

转载 作者:行者123 更新时间:2023-12-01 03:58:30 32 4
gpt4 key购买 nike

我刚刚开始学习编码,我遇到了这个我无法理解的问题。

“我们将添加的第二个函数称为搜索,它将以名字作为参数。它将尝试将收到的名字与我们 friend 联系人列表中的任何名字相匹配。如果它找到匹配项,就会将我们 friend 的联系信息(名字、姓氏、号码、地址)记录到控制台。”

变量定义如下:

var friends = {}; 
friends.bill = {
firstName: "Bill",
lastName: "gates",
number: "1234567",
address: ['bishan','starbucks', 'centertable']
};

friends.steve = {
firstName: "Steve",
lastName: "jobs",
number: "987654",
address: ['orchird', 'ikoma', 'ga']
};

答案如下:

var search = function(name) {
for(var key in friends) {
if(friends[key].firstName === name) {
console.log(friends[key]);
return friends[key];
}
}
};

有人可以更好地解释一下 var“key” 是如何产生的吗?为什么我不能只输入 Friends.firstName === name, console.log(friends.name), return Friends.name ?

如果有人能解释一下,我将不胜感激。

最佳答案

摘自OP的评论:

var friends = {}; 

friends.bill = {
firstName: "Bill",
lastName: "gates",
number: "1234567",
address: ['bishan','starbucks', 'centertable']
};

friends.steve = {
firstName: "Steve",
lastName: "jobs",
number: "987654",
address: ['orchird', 'ikoma', 'ga']
};

friends 是一个嵌套对象,也可以这样表示:

friends = {
bill: {
firstName: "Bill",
lastName: "gates",
number: "1234567",
address: ['bishan','starbucks', 'centertable']
},
steve: {
firstName: "Steve",
lastName: "jobs",
number: "987654",
address: ['orchird', 'ikoma', 'ga']
}
}

for..in 循环迭代 friends 对象中的所有键,并在您的情况下使用变量 key

why can't i just input friends.firstName === name, console.log(friends.name), return friends.name ??

因为,要做到这一点,您需要将 firstNamename 作为 friends 中的属性。由于这些属性嵌套在内部(name 不是嵌套对象内的事件),因此使用了 for..in 循环。

关于javascript - 迭代对象属性/键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42411193/

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