下划线是否可以根据包含嵌套对象的属性匹配列表中的项目?
例如,在MRSS Feed上使用热门node-feedparser
会生成与此类似的条目:
var item = {
// a bunch of fields
'ooyala:metadata': [
{
'@': {
name: 'guid'
},
'#': 'a string'
},
{
'@': {
name: 'genre'
},
'#': 'music videos'
}
]
}
我需要一种从项目集合中提取GUID的方法,所以我的第一次尝试就是:
var firstAttempt = _.where(item['ooyala:metadata'], { '@': { name: 'guid' } })
返回一个空集。
有没有办法根据下划线中的嵌套对象获取集合的成员?
答案 0 :(得分:0)
您可以使用filter
,它将函数作为其第二个参数。
var correctWay = _.filter(item['ooyala:metadata'], function(item) {
return item['@'].name === "guid";
});
我试图找到一种方法将函数传递给where
并且没有意识到它是filter
的常见用例的简写。