Javascript For..语法问题

Javascript For...In syntax issue?

本文关键字:问题 语法 For Javascript      更新时间:2023-09-26

下面代码中的搜索函数不起作用,我认为它与For。。。循环中,但我是JS的新手,不确定为什么:

var friends = {
bill: {
    firstName: "bill",
    lastName: "smith",
    number: 1,
    address: ["1"]
},
steve: {
    firstName: "steve",
    lastName: "smith",
    number: 2,
    address: ["2"]
}
};
var list = function(list) {
for(var item in list) {
    console.log(item);
}
};
var search = function(name) {
for(var friend in friends) {
    if(friend.firstName === name) {
        console.log(friend);
        return friend;
    }
}
};
search("steve");

for in循环迭代,而不是值。

friend是一个字符串,包含每个属性的名称
要获取该值,请使用friends[friend]

for的优秀文档。。在mdn上可以找到in循环。其中variable在每次迭代中被分配给"一个不同的属性名称"。

你可能也不需要循环浏览每个朋友。如果您将搜索功能更改为在对象上使用hasOwnProperty

var search = function(name) {
    if(friends.hasOwnProperty(name)){
        return friends[name];
    }
};

这将检查对象friends中是否有name的属性并返回它。下面是一个快速的示例