Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.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 下划线包含对象类型上的(u.contains)_Javascript_Underscore.js - Fatal编程技术网

Javascript 下划线包含对象类型上的(u.contains)

Javascript 下划线包含对象类型上的(u.contains),javascript,underscore.js,Javascript,Underscore.js,我刚刚开始使用Javascript和下划线库。我看到它们有各种各样的效用函数,比如u.contains。有没有一种方法可以在对象上执行此操作 var indexes = [ {'id': 1, 'name': 'jake' }, {'id':4, 'name': 'jenny'}, {'id': 9, 'name': 'nick'}, {'id': 1, 'name': 'jake' }, {'id':4, 'name': 'jenny'} ]; if (_.contains(indexes

我刚刚开始使用Javascript和下划线库。我看到它们有各种各样的效用函数,比如u.contains。有没有一种方法可以在对象上执行此操作

var indexes = [ {'id': 1, 'name': 'jake' }, {'id':4, 'name': 'jenny'},  {'id': 9, 'name': 'nick'}, {'id': 1, 'name': 'jake' }, {'id':4, 'name': 'jenny'} ];

if (_.contains(indexes, {'id':1, 'name': 'jake'})) {
    console.log("contains");
}

他们展示的大多数示例都有简单的数组,其中包含字符串或数字。我想知道我能做些什么来使用它们的实用函数,比如对象的u.contains。谢谢。

您可能真的想使用它

var indexes = [ {'id': 1, 'name': 'jake' }, {'id':4, 'name': 'jenny'},  {'id': 9, 'name': 'nick'}, {'id': 1, 'name': 'jake' }, {'id':4, 'name': 'jenny'} ];

if (_.where(indexes, {'id':1, 'name': 'jake'}).length) {
    console.log("contains");
}

包含
要求值与不适用于不同对象实例的
==
相比较

例如,如果您传递了您正在搜索的确切对象,它将起作用,这不是很有用

if (_.contains(indexes, indexes[0])) {
但是,您可以使用
where
findWhere

if (_.findWhere(indexes, {'id':1, 'name': 'jake'})) {
if (_.where(indexes, {'id':1, 'name': 'jake'}).length > 0) {
findWhere
在下划线
1.4.4
中是新的,因此如果您没有它,可以使用
where

if (_.findWhere(indexes, {'id':1, 'name': 'jake'})) {
if (_.where(indexes, {'id':1, 'name': 'jake'}).length > 0) {

实际上,你需要做
如果(u.where(/*…*/).length)
,就像
.where
总是返回一个对象一样。u.findWhere()返回一个对象-u.where()返回一个数组-但是我确实忘记了一个“.length”是的:)直到我回答后才意识到我忘记了“.length”。更新了我的答案