检查传入参数是否在数组对象中
Check if the pass-in parameter is in the array object
我想检查传入参数是否在对象数组中。不知何故,检查函数中的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
循环,以便它在第一次迭代时以某种方式返回。也就是说,没有办法通过循环超过一次,因为if
和else
都以return
结束。
反正你也不需要。如果"find"函数返回非空,那么您就知道它一定是一个用户,并且不需要再做任何工作:
function check(u) {
var r = 0;
return find(u) !== null ? "it's a user" : "not a user";
}
相关文章:
- 将数组对象传递到struts2中的操作类
- 如何使用jquery返回php-json数组对象
- 从其名称获取javascript数组对象
- 值未与数组对象绑定
- 如何按数组/对象值的倍数过滤对象数组
- 在表中显示数组对象
- 在数组对象中分组
- 将第二个或多个数组推送到数组对象 AngularJS 中
- 重新排列 JavaScript 数组/对象
- 键上的javascript数组对象过滤器
- handontable:在不更改数据数组/对象的情况下隐藏某些列
- 用于跟踪购物车可用性的Javascript数组/对象/哈希表
- 重建有角度的java脚本数组对象
- 对JSON数组对象进行排序
- 连接与数组对象相关的文本:方式和位置
- 哪些浏览器和版本支持将常见的类数组对象直接传递到fn.apply()
- 如何使用Handlebars循环数组对象和模板
- 是否可以引用JS数组/对象中的另一个元素
- Javascript中的名称索引-数组/对象
- 数组长度不等于数组对象