Javascript联系人列表
嗨,我用JavaScript编写了一个简单的联系人列表应用程序。我创建了一个搜索功能,在运行时显示所有联系人列表。我只是想知道在运行函数时如何输出如下返回: 名字: 姓氏: 编号: 地址: 目前,它在顶部显示了我的输出名称,但在下面显示了我的“朋友”变量代码 我的JavaScript代码如下:Javascript联系人列表,javascript,Javascript,嗨,我用JavaScript编写了一个简单的联系人列表应用程序。我创建了一个搜索功能,在运行时显示所有联系人列表。我只是想知道在运行函数时如何输出如下返回: 名字: 姓氏: 编号: 地址: 目前,它在顶部显示了我的输出名称,但在下面显示了我的“朋友”变量代码 我的JavaScript代码如下: var friends = { bill: { firstName: "Bill", lastName: "Stevens", number: "07872937209",
var friends = {
bill: {
firstName: "Bill",
lastName: "Stevens",
number: "07872937209",
address: ['Park Road', 'Blaby','Leicester', 46]
},
steve:{
firstName: "Steve",
lastName: "Elliott",
number: "07970943757",
address: ['Park Road2', 'Blaby2','Leicester2', 462]
}
};
var list = function(object)
{
for(var key in object){
console.log(key);
}
};
var search = function(name) {
for(var prop in friends) {
if(friends[prop].firstName === name) {
console.log(friends[prop]);
return friendsName;
}
}
};
在这里,我创建了一个名为print的新函数,它将以您想要的格式输出特定的人
function print(obj) {
for (var k in obj) {
if (k === 'address') {
console.log(obj[k].join(', '));
} else {
console.log(obj[k]);
}
}
}
在这个函数中需要注意的一点是firstName永远不会===name。firstName以大写字母开头,name或object键为小写,因此===永远不会返回true。这里我用了小写来纠正这个问题
function search(name) {
for (var prop in friends) {
if (friends[prop].firstName.toLowerCase() === name) {
print(friends[prop]);
}
}
};
我注意到的一点是,对象中不能有多个具有相同昵称的人,因为所有对象键都是唯一的。您可能会发现以下内容很有用
简而言之,我冒昧地将您的friends对象切换到一个数组,添加了一个新的昵称键,并包含了一个fetchFriend函数,用于从数组中提取与您传入的昵称匹配的对象。然后,您可以循环返回的数组,而不管您在好友列表中给多少人起了昵称bill:
var friends = [
{
nickname: 'bill',
firstName: "Bill",
lastName: "Stevens",
number: "07872937209",
address: ['Park Road', 'Blaby', 'Leicester', 46]
},
{
nickname: 'bill',
firstName: "William",
lastName: "Fisher",
number: "078729234209",
address: ['Moose Road', 'Whitby', 'Yorkshire', 146]
},
{
nickname: 'steve',
firstName: "Steve",
lastName: "Elliott",
number: "07970943757",
address: ['Park Road2', 'Blaby2', 'Leicester2', 462]
}
];
function list(arr) {
for (var i = 0, l = arr.length; i < l; i++) {
console.log(arr[i].firstName);
}
};
function print(obj) {
for (var k in obj) {
if (k === 'address') {
console.log(obj[k].join(', '));
} else {
console.log(k + ': ' + obj[k]);
}
}
}
function fetchFriend(nickname, arr) {
return arr.filter(function (el) {
return el.nickname === nickname;
});
}
function search(nickname, friends) {
var friendArr = fetchFriend(nickname, friends);
for (var i = 0, l = friendArr.length; i < l; i++) {
print(friendArr[i]);
}
};
search('bill', friends);
在哪里调用列表和搜索函数,使用什么参数?他们怎么了?非常感谢!这把一切都整理好了,我学到了一些很棒的东西:NP。我应该指出,过滤器只适用于IEV9及以上版本,但如果您需要在工作中使用旧版本,则有一个polyfill。
var friends = [
{
nickname: 'bill',
firstName: "Bill",
lastName: "Stevens",
number: "07872937209",
address: ['Park Road', 'Blaby', 'Leicester', 46]
},
{
nickname: 'bill',
firstName: "William",
lastName: "Fisher",
number: "078729234209",
address: ['Moose Road', 'Whitby', 'Yorkshire', 146]
},
{
nickname: 'steve',
firstName: "Steve",
lastName: "Elliott",
number: "07970943757",
address: ['Park Road2', 'Blaby2', 'Leicester2', 462]
}
];
function list(arr) {
for (var i = 0, l = arr.length; i < l; i++) {
console.log(arr[i].firstName);
}
};
function print(obj) {
for (var k in obj) {
if (k === 'address') {
console.log(obj[k].join(', '));
} else {
console.log(k + ': ' + obj[k]);
}
}
}
function fetchFriend(nickname, arr) {
return arr.filter(function (el) {
return el.nickname === nickname;
});
}
function search(nickname, friends) {
var friendArr = fetchFriend(nickname, friends);
for (var i = 0, l = friendArr.length; i < l; i++) {
print(friendArr[i]);
}
};
search('bill', friends);