我刚刚开始使用 Javascript 和使用 Underscore 库。我看到他们有各种各样的实用功能,比如 _.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");
}
他们展示的大多数示例都有包含字符串或数字的简单数组。我想知道我能做些什么来使用它们的实用函数,比如对象的 _.contains。谢谢。
最佳答案
contains
要求值与 ===
比较,这不适用于不同的对象实例。
例如,如果您传递了您正在搜索的确切对象,它就会起作用,这不是很有用。
if (_.contains(indexes, indexes[0])) {
不过,您可以使用 where
或 findWhere
。
if (_.findWhere(indexes, {'id':1, 'name': 'jake'})) {
findWhere
是 Underscore 1.4.4
中的新功能,因此如果您没有它,可以使用 where
。
if (_.where(indexes, {'id':1, 'name': 'jake'}).length > 0) {
关于javascript - 对象类型上的下划线包含 (_.contains),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15869648/