我有一个本地JSON数据集(如下所述),并尝试使用_.where
方法从数据集中检索特定值。
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
属性中的文本。
任何帮助将受到极大的欢迎。感谢您的阅读!
有了._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;
});
例