2016-05-16 9 views
1

何らかの理由で私のfindWhereが動作しません。これは正しい使い方ですか?私はドキュメントのサンプルコードに従っており、それと似たようなパターンを持っているようです。アンダースコア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

アンダースコアでは、クエリを比較する際に "等号"が使用されないことがわかりました。したがって、周りの仕事は

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

フィルターはあなたが使用することができ、単一のアイテムを探しているなら(http://underscorejs.org/ [検索]、あなたの検証機能を渡し、すべてのアイテムを持つ配列を返しますでしょう#find)代わりに – AldoRomo88

関連する問題