2015-06-12 33 views
2

我有一個本地JSON數據集(如下所述),並試圖使用_.where方法從數據集中檢索特定值。訪問JSON對象鍵/值其中value是使用下劃線的數組

JSON文件

"data": [{ 
    "singles_ranking": [116], 
    "matches_lost": ["90"], 
    "singles_high_rank": [79], 
    "matches_won": ["170"], 
    "singles_ranking/_source": ["116"], 
    "year_matches_won": ["11"], 
    "name": ["Pfizenmaier Dinah"], 
    "gender": ["woman"], 
    "_resultNumber": 1, 
    },{etc},{etc}]; 

目前,我試圖從數據集內,像這樣檢索值:

var mappedPlayers = _.map(players,function(key,val){return key}); 
var filteredPlayers = _.where(mappedPlayers, {name:'Pfizenmaier Dinah'}); 
console.log(filteredPlayers); 

這返回當前undefined。我90%確定這是因爲關鍵值存儲在一個數組中,但我不確定如何修改此_.where條件以實際使其返回value屬性中的文本。

任何幫助將受到大大歡迎。感謝您的閱讀!

回答

1

隨着._where這是不可能的,但你可以使用_.filter,像這樣

var where = {key: 'name', value: 'Pfizenmaier Dinah'}; 
var filteredPlayers = _.filter(players, function (el) { 
    // check if key exists in Object, check is value is Array, check if where.value exists in Array 
    return el[where.key] && _.isArray(el[where.key]) && _.indexOf(el[where.key], where.value) >= 0; 
}); 

Example

+0

這奏效了! – user1163073