想要测试我的find函数是否可以使用传入参数来匹配用户数组中的对象属性。我相信这个问题是在if语句中遇到的,我不确定这是比较两个人的正确方法。
// 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"));
返回值为null,如果我取出else语句,则返回undefined。 你能帮忙的话,我会很高兴。谢谢。
答案 0 :(得分:1)
user
数组。user[i][lname]
,通过执行user[i].lname
工作示例:
// 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 "FOUND: " + lname;
}
}
return null;
}
console.log(find("last"));
&#13;
答案 1 :(得分:1)
为什么要循环?
var text = "your text val=foo";
var matches = text.match(/val=([\s\S]*)/);
var value = matches && matches[1];
同样但首先回击:
function find(lname){
return user.filter(function(item){
return item.lname === lname;
});
}