所以"对于朋友中的var x"循环将搜索朋友内的每个键,这将是bill和steve,然后是" friends [x] .firstName === name"我们正在检查名字是否等于" name",但程序如何知道" name"是史蒂夫还是比尔?我在这里遗漏了一些东西。
var friends = {
bill: {
firstName: "Bill",
lastName: "Gates",
number: " ",
address: [' ', ' ', ' ',' ']
},
steve: {
firstName: "Steve",
lastName: "Jobs",
number: " ",
address: [' ', ' ', ' ',' ']
}
};
var list = function(friends) {
for (var x in friends) {
console.log(x);
}
};
var search = function(name) {
for (var x in friends) {
if(friends[x].firstName === name) {
console.log(friends[x]);
return friends[x];
}
}
};
答案 0 :(得分:1)
for (var x in friends)
这会迭代朋友中的所有键,导致使用
进行两次循环迭代x = "bill"
x = "steve"
然后在循环中与朋友[x]一起访问friends.bill和freinds.steve。 name变量作为搜索(name)的参数给出。这有效地搜索了dict朋友中的所有条目以获取firstName == name。
答案 1 :(得分:0)
这里我们将搜索定义为函数search
,它接受参数name
。
var search = function(name)
我们使用像
这样的功能search('Bill')
因此函数知道我们要查找的名称,即Bill
。它会遍历每个项目,并将每个firstName
与Bill
进行比较。当找到匹配时,它会返回相应的friends[x]
。
带参数的函数的优点是,使用相同的函数我们可以搜索任何名称。例如:search('Steve')
,search('Bill')
。
如果您不理解带参数的函数,请重新访问codeacademy部分understanding parameters - js