Javascript搜索功能错误

时间:2016-05-15 11:02:17

标签: javascript function

我正在我的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 个答案:

答案 0 :(得分:2)

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>
v=10; 
teta=[20 40 60]; % angle of the projectile motion
vx=v*cos(pi*teta/180); % velocity in x axis
vy=v*sin(pi*teta/180); % velocity in y axis
x=0:20;
y=zeros(size(x));
for i=1:length(vx)
    y(i,:)=vy(i).*(x./vx(i))-(0.5*9.81*(x./vx(i)).^2); % here I calculate the height of the ball in y axis
end
plot(x,y)
set(gca,'ylim',[0,5])