2014-05-24 80 views
1

“steve”触点在控制台中打印三次。为什么下面的JavaScript代码打印结果三次?

var friends = { 
    steve: { 
     firstName: "Steve", 
     lastName: "Jobs", 
     number: "555555555", 
     address: ["One Infinite Loop", "Cupertino", "CA", "98052"] 
    }, 
    bill: { 
     firstName: "Bill", 
     lastName: "Gates", 
     number: "555555555", 
     address: ["One Microsoft way", "Redmond", "WA", "98052"] 
    } 
}; 

var list = function (friends) { 
    for (var firstName in friends) { 
     console.log(firstName); 
    } 
}; 

var search = function (name) { 
    for (var steve in friends) { 
     if (friends[steve].firstName === name) { 
      console.log (friends[steve]); 
      return friends [steve]; 
     } 
    } 
}; 

说明:定义一个函数搜索,它接受一个参数name。如果传递给该函数的参数与朋友中的任何名字匹配,则它应该将该朋友的联系信息记录到控制台并返回。

+4

此代码根本不打印任何内容。实际上没有任何功能被调用。 –

+0

当我用“史蒂夫”运行搜索功能时,我看到只打印一个值。列表函数仅显示朋友变量(“steve”和“bill”)引用的对象的键。 –

+0

如果你在控制台中搜索('Steve')',你会得到2行打印。这是有点期待:) –

回答

0
var search = function(name) { 
    for(var name in friends) { 
     if(friends[name].firstName) { 
      console.log(friends[name]); 
      return friends[name]; 
     } 
    } 
}; 

它的胜利之桥......试试吧!

相关问题