【问题标题】:Javascript For...In syntax issue?Javascript For ...在语法问题?
【发布时间】:2013-08-29 09:51:49
【问题描述】:

以下代码中的搜索功能不起作用,我认为它与 For...In 循环有关,但我是 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");

【问题讨论】:

标签: javascript loops for-loop iterator for-in-loop


【解决方案1】:

for..in 循环的精彩文档可以在 mdn 上找到。其中variable 通过每次迭代分配给“不同的属性name”。

您也可能不需要遍历每个朋友。如果您将搜索功能更改为在对象上使用 hasOwnProperty 会怎样:

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

这将检查您在对象friends 中是否具有name 的属性并将其返回。这是一个快速的EXAMPLE

【讨论】:

    【解决方案2】:

    for in 循环遍历 ,而不是值。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-14
      • 2016-07-30
      • 2012-02-13
      • 2019-07-11
      • 1970-01-01
      • 2020-09-15
      相关资源
      最近更新 更多