gpt4 book ai didi

javascript - 检查传入的参数是否在数组对象中

转载 作者:行者123 更新时间:2023-12-03 08:39:04 28 4
gpt4 key购买 nike

我想检查我的传入参数是否在对象数组中。不知何故,检查函数中的 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(u){
for(var i = 0; i < user.length; i++){
if(u === user[i].lname){
return user[i];
}
}
return null;
}

function check(u) {
var r = 0;
for(var i = 0; i < user.length; i++){
if(find(u).lname !== user[i].lname){
return "not a user";
}else if(find(u).lname === user[i].lname){
return "it's a user";
}
}
}
console.log(check("last"));

最佳答案

您已在“check”函数中编写了 for 循环,以便它在第一次迭代时以某种方式返回。也就是说,无法多次完成循环,因为 ifelse 都以 return 结尾。

无论如何你都不需要这个。如果“find”函数返回非空,那么您就知道它一定是一个用户,并且不需要做任何更多的工作:

function check(u) {
var r = 0;
return find(u) !== null ? "it's a user" : "not a user";
}

关于javascript - 检查传入的参数是否在数组对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33108658/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com