我正在处理联系人列表脚本。列表功能正常。
该函数应该采用参数名称。如果参数匹配任何名字,账单或史蒂夫,它应该将朋友的联系信息记录到控制台并返回它。
我尝试在我的搜索功能中执行此操作,但未返回预期值(联系信息 - 更具体地说,电话号码)。我假设它是我的方法和对象构造函数的误解。
// Creating friends object
var friends = new Object();
// Adding friends with name, phone number
friends.bill = new Object();
// Giving data to Bill
friends.bill.firstName = "Bill";
friends.bill.lastName = "Gates";
friends.bill.number = "623523";
friends.bill.address = ['One Microsoft Way','Redmond','WA','98052']
friends.steve = new Object();
// Givin data to Steve
friends.steve.firstName = "Steve";
friends.steve.lastName = "Jobs";
friends.steve.number = "73472"
friends.steve.address = ['1 Infinite Loop','Silicon Valley','CA','64326']
// Search function
var search = function(name) {
for (var key in friends) {
if(name === friends.name.firstName) {
console.log(friends.name.number);
return friends.name.number;
}
};
}
答案 0 :(得分:0)
你快到了。一个朋友"是friends
对象/字典的属性。 for(var key in friends)
在friends
对象的属性的名称/键之间(并将key
变量一个接一个地分配给这些属性)。要取一个房产/"朋友"从friends
使用其密钥,您应该使用friends[key]
(其中key是一个字符串)。
请注意以下这些例子之间的区别:
var key = "james";
friends[key]; // Fetch the property with the key "james".
friends.key; // Fetch the property with the key "key".
friends["james"]; // Fetch the property with the key "james".
friends.james; // Fetch the property with the key "james".
以下是解决问题的方法:
// Creating friends object
var friends = new Object();
// Adding friends with name, phone number
friends.bill = new Object();
// Giving data to Bill
friends.bill.firstName = "Bill";
friends.bill.lastName = "Gates";
friends.bill.number = "623523";
friends.bill.address = ['One Microsoft Way','Redmond','WA','98052']
friends.steve = new Object();
// Givin data to Steve
friends.steve.firstName = "Steve";
friends.steve.lastName = "Jobs"; // Typo here: bill -> steve.
friends.steve.number = "73472"; // Same as above.
friends.steve.address = ['1 Infinite Loop','Silicon Valley','CA','64326']
// Printing out entries in friend object
var list = function(parameter){
for (var key in friends){
console.log(key);
}
}
// Search function
var search = function(name){
for (var key in friends){
var friend = friends[key];
if(name === friend.firstName){
console.log(friend.number);
return friend.number;
}
};
}
search("Steve");