我正在Java代码中编写搜索功能。但是,它会一直返回搜索功能,不会返回正确的联系信息。
此搜索功能的目标是返回对象的联系信息,即firstName,lastName,数字和地址。如果给定输入Name,则它与我创建的对象中的键之一匹配,它应返回联系信息并将其记录在控制台上。
var friends = {
bill:{
firstName : "Bill",
lastName : "Gates",
number : "(123) 456- 7890",
address : ['Microsoft', 20]
},
steve:{
firstName : "Steve",
lastName : "Jobs",
number : "(123) 456- 7890",
address : ['Apple', 30]
}
};
var friends1 = new Object();
var list = function(friends1){
for(var key in friends1){
console.log(friends1[key].firstName.toLowerCase());
}
};
var search = function(name){
for(var key in friends1){
if(friends1[key].firstName.toLowerCase() === name.toLowerCase()){
console.log(friends1[key]);
return friends1[key];
}
}
};
list(friends1);
search("Steve");
最佳答案
在search
函数中,循环浏览friends1
中的键。 friends1
关闭的search
是以下来源之一:
var friends1 = new Object();
...您永远不会添加任何属性。因此循环不会做任何事情。您要查询的对象中没有可枚举的属性。
在整个
search
中,您需要的是friends
,而不是friends1
:var friends = {
bill:{
firstName : "Bill",
lastName : "Gates",
number : "(123) 456- 7890",
address : ['Microsoft', 20]
},
steve:{
firstName : "Steve",
lastName : "Jobs",
number : "(123) 456- 7890",
address : ['Apple', 30]
}
};
var friends1 = new Object();
var search = function(name){
for(var key in friends){
if(friends[key].firstName.toLowerCase() === name.toLowerCase()){
snippet.log(friends[key]);
return friends[key];
}
}
};
search("Steve");
<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="//tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
关于javascript - JavaScript搜索功能错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37237442/