2016-05-16 100 views
1

由于某种原因,我findWhere不起作用。这是正确的使用方法吗?我遵循文档中的示例代码,它似乎有相似的模式。下划线找到在哪里使用

var test = _.findWhere(object.entryDetails, {entryOwner_id: customer._id}); 

object.entryDetails有以下值,

[{ money_out: 0, 
     money_in: 0, 
     entryOwner_id: 5738b77b648115cf0410ba92, 
     _id: 57393d834d7ab0fa1af85600 }, 
     { money_out: 0, 
     money_in: 0, 
     entryOwner_id: 5738b77c648115cf0410baaa, 
     _id: 57393d834d7ab0fa1af855ff } ] 

customer._id有以下值

5738b77b648115cf0410ba92 

显然customer._id存在数组中,但我findWhere回报 “不确定”

回答

0

我想出下划线在比较查询时不使用“equals”。因此,解决方法是

var filtered = _.filter(object.entryDetails, function (entry) { 
    return entry.entryOwner_id.equals(customer._id);}); 
if (filtered.length > 0) ... 
+0

如果您正在查找可以使用的单个项目,则筛选器将返回一个包含通过验证函数的所有项目的数组[http://underscorejs.org/ #find) – AldoRomo88