Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript搜索函数错误_Javascript_Function - Fatal编程技术网

Javascript搜索函数错误

Javascript搜索函数错误,javascript,function,Javascript,Function,我正在Javascript代码中编写一个搜索函数。但是,它会不断返回搜索功能并不会返回正确的联系信息 此搜索函数的目标是返回对象的联系信息,即firstName、lastName、number和address。如果给定一个输入名称,它将匹配我创建的对象中的一个键,它将返回联系人信息并将其记录在控制台上 var friends = { bill:{ firstName : "Bill", lastName : "Gates", number

我正在Javascript代码中编写一个搜索函数。但是,它会不断返回搜索功能并不会返回正确的联系信息

此搜索函数的目标是返回对象的联系信息,即firstName、lastName、number和address。如果给定一个输入名称,它将匹配我创建的对象中的一个键,它将返回联系人信息并将其记录在控制台上

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");

搜索
功能中,您可以循环浏览
好友1
中的键。
search
关闭的
friends1
来自:

var friends1 = new Object();
…您从未向其添加任何属性。所以循环不会做任何事情;您正在查询的对象中没有可枚举属性

在整个
搜索过程中
,您想要的是
朋友
,而不是
朋友1

var-friends={
法案:{
名字:“比尔”,
姓:“盖茨”,
编号:“(123)456-7890”,
地址:['Microsoft',20]
},
史蒂夫:{
名字:“史蒂夫”,
姓氏:“乔布斯”,
编号:“(123)456-7890”,
地址:[“苹果”,30]
}      
};
var friends1=新对象();
var search=函数(名称){
for(键入朋友){
if(friends[key].firstName.toLowerCase()==name.toLowerCase()){
console.log(朋友[key]);
返回朋友[键];
}
}   
};

搜索(“史蒂夫”)
几乎不管您在什么环境中运行JavaScript,都有一个功能齐全的调试器,您可以使用它逐条检查代码语句、检查变量等。使用它是解决此类问题的最佳方法。在浏览器中,您可以访问“开发工具”(在Mac上通常是F12和/或Ctrl+Shift+I或Cmd+Shift+I)。另外:由于
list
与问题无关,因此最好不要将其包含在问题中。@ParagBhayani:看看,我会说,这是因为它不能解决问题。具体是哪种情况?@Parabhayani:事实上,它有点解决问题,但方式非常奇怪,而且评论对事情的描述不正确。