2014-01-27 17 views
0

如果我想使用_.where找到一個與我的varibale時間戳具有相同時間戳的對象,那麼該怎麼辦?underscore.js:關鍵比較使用_.where

我有數組命名的數據,我想檢查key2。$子鍵等於「2014-01-27T16:50:33.035Z」或不。

以下是代碼相同。

var data=[{{key1":"key1"},{ "key2" : { "$subkey" : "2014-01-27T16:50:33.035Z"}}}, {{key1":"key1"},{ "key2" : { "$subkey" : "2014-01-27T12:50:33.035Z"}}}]; 

var match=_.where(data,{key2.$subkey="2014-01-27T16:50:33.035Z"}) 

如何比較的關鍵,其本身是一個使用underscorejs

回答

1

使用filter函數的對象:

var match = _.filter(
    data, 
    function (x) 
    { 
     return x.key2.$subkey == "2014-01-27T16:50:33.035Z" 
    }) 

它接受將要使用的謂詞函數來確定是否保留每個項目與否。

where功能只是一個filter功能的專業化和可在其方面可以非常容易地實現。

+0

是否有任何選項在哪裏檢查x.key2。$ subkey ==「2014-01-27T16:50:33.035Z」? – asdfdefsad

+1

@PriyaBhatt不是我所知道的。正如我所說,「where」只是'filter'的特例。這也是一個很常見的情況。這可能就是爲什麼underscore.js的設計者決定提供它,因爲它通常非常方便。 –