我正在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/

10-11 08:23