Javascript 比较传入函数参数和数组对象属性
要测试我的查找函数是否可以使用传入参数来匹配用户数组中的对象属性。我认为问题在于if语句中遇到的问题,我不确定这是比较两者的正确方法Javascript 比较传入函数参数和数组对象属性,javascript,Javascript,要测试我的查找函数是否可以使用传入参数来匹配用户数组中的对象属性。我认为问题在于if语句中遇到的问题,我不确定这是比较两者的正确方法 // member object function member(lname, fname, mname){ return{ lname: lname, // object property fname: fname, mname: mname }; } var user = [ member('lastname',
// member object
function member(lname, fname, mname){
return{
lname: lname, // object property
fname: fname,
mname: mname
};
}
var user = [
member('lastname', 'firstname', 'middlename'),
member('last', 'first', 'mname'),
member('l', 'f', 'm'),
member('ll', 'ff', 'mm')
];
function find(lname){
for(var i = 0; i < user.length; i++){
if(lname === user[i][lname]){
return(console.log(lname));
}else{
return null;
}
}
}
console.log(find("last"));
//成员对象
功能成员(lname、fname、MNName){
返回{
lname:lname,//对象属性
fname:fname,
mname:mname
};
}
变量用户=[
成员('lastname','firstname','middlename'),
成员('last','first','mname'),
成员(“l”、“f”、“m”),
成员('ll','ff','mm')
];
函数查找(lname){
对于(变量i=0;i
返回值为null,如果我取出else语句,它将返回undefined。
任何帮助都很好。谢谢
用户
数组user[i].lname来访问lname属性,而不是user[i][lname]
//成员对象
功能成员(lname、fname、MNName){
返回{
lname:lname,//对象属性
fname:fname,
mname:mname
};
}
变量用户=[
成员('lastname','firstname','middlename'),
成员('last','first','mname'),
成员(“l”、“f”、“m”),
成员('ll','ff','mm')
];
函数查找(lname){
对于(变量i=0;i为什么要循环
function find(lname){
return user.filter(function(item){
return item.lname === lname;
});
}
相同但返回第一次命中:
function find(lname){
return user.filter(function(item){
return item.lname === lname;
})[0];
}
在我看来,team
与user
不是同一个变量?team在哪里?同样,如果你错过了,不要在循环中返回,继续循环再试一次。另外,team[i][lname]
应该是team[i]。lname
是的,我忘了更改它。现在修复它。您也可以做一些事情。如果您总是希望第一个匹配,您可能希望将[0]放在返回值的末尾:}[0]@Fievelyartsen是的,我知道,这是我的第一个想法,但后来我认为函数的名称是find
,所以它必须按照它所说的那样做。