联系人列表Javascript
问题描述:
我正在处理联系人列表脚本。列表函数工作正常。联系人列表Javascript
函数应该做的是取参数名称。如果参数匹配任何名字,比尔或史蒂夫,它应该记录朋友的联系信息到控制台并返回它。
我试图在我的搜索功能中这样做,但它没有返回期望值(联系信息 - 更具体地说是电话号码)。我假设这是我对对象构造函数的误解和误解。
// 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;
}
};
}
答
你快到了。 “朋友”是friends
对象/字典的属性。 for(var key in friends)
iters中的friends
对象的属性的名称/键(并将key
变量分配给这些属性)。要使用密钥从friends
中获取一个属性/“朋友”,您应该使用friends[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");
你有没有注意到,史蒂夫有一些比尔的信息? (在Steve部分:'friends.bill.lastname =“Jobs”') –
@BubbleHacker,很好!我没有注意到这一点。不出所料,程序运行不正常。搜索功能不正确。 –