javascript - 对象类型上的下划线包含 (_.contains)

标签 javascript underscore.js

我刚刚开始使用 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])) {

不过,您可以使用 wherefindWhere

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/

相关文章:

javascript - 用链接包裹一堆图像

javascript - 使用 Underscore JS _contains 方法检查数组中的键/值对是否存在

backbone.js - 非常基本的 Backbone/Underscore 通过 Require.js 问题驱动我

javascript - 诗农 fakeTimers 不触发

javascript - 下划线排序算法

asp.net-mvc - 如何在 ASP.Net MVC View 中使用下划线/javascript 模板

javascript - 如何使用 react 路由器 dom v6 在路由更改时滚动到顶部?

javascript - 使用 JavaScript 的实时博客系统

javascript - 创建一个将另一个函数纳入其自身的函数

javascript - Javascript遗留的噩梦-试图绕过一些压缩的JavaScript