Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查列表是否包含值javascript_Javascript - Fatal编程技术网

检查列表是否包含值javascript

检查列表是否包含值javascript,javascript,Javascript,我是javascript新手。 这是我的代码,如果在列表中找到“anna”,我希望它返回true var userList = [{'username':'anna','email':'anna@a.c'}, {'username':'benny','email':'benny@a.c'}, {'username':'kathy','email':'kathy@a.c'}] return userList.includes('anna

我是javascript新手。 这是我的代码,如果在列表中找到“anna”,我希望它返回true

var userList = [{'username':'anna','email':'anna@a.c'},
               {'username':'benny','email':'benny@a.c'},
               {'username':'kathy','email':'kathy@a.c'}]

return userList.includes('anna')
非常感谢您的帮助

尝试:

return userList.filter(function(e,i) { return e.username == 'anna' }).length > 0;
这样做的目的是为
用户名
值为
'anna'
的所有条目过滤数组
用户列表
,并返回过滤列表的长度是否大于0(即至少有一个条目)。

尝试:

return userList.filter(function(e,i) { return e.username == 'anna' }).length > 0;
这样做的目的是为
用户名
值为
'anna'
的所有条目过滤数组
用户列表
,并返回过滤列表的长度是否大于0(即至少有一个条目)。

使用:

ES6语法:

return userList.some(user => user.username === 'anna');
ES5语法:

function hasAnna(user) {
  return user.username === 'anna';
}
return userList.some(hasAnna);
使用:

ES6语法:

return userList.some(user => user.username === 'anna');
ES5语法:

function hasAnna(user) {
  return user.username === 'anna';
}
return userList.some(hasAnna);

.some()
很酷,只需注意IE不支持箭头函数。@PHPglue很好。我已经更新了答案。我有点假设现在每个人都在使用babel:-)
。some()
很酷,只需注意IE不支持箭头函数。@PHPglue很好。我已经更新了答案。我有点假设现在每个人都在使用babel:-)虽然这会起作用,但效率有点低。。。想象一下,您有一个包含数千项的长列表,其中有一项在第二个位置包含“anna”。您建议的解决方案将遍历所有项(即使在第二个位置找到“anna”)。使用
some
执行将在第二次执行时停止。无论如何,我给你一个加号,因为你的答案解决了这个问题。在这种情况下,使用
===
进行严格的比较不是更合适吗?虽然这会起作用,但效率有点低。。。想象一下,您有一个包含数千项的长列表,其中有一项在第二个位置包含“anna”。您建议的解决方案将遍历所有项(即使在第二个位置找到“anna”)。使用
some
执行将在第二次执行时停止。无论如何,我给你一个加号,因为你的答案解决了问题。在这种情况下,使用
==
进行严格比较不是更合适吗?