0

下划线是否可以根据包含嵌套对象的属性匹配列表中的项目?

例如,node-feedparser在 MRSS 提要上使用流行的将生成类似于以下内容的条目:

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' } })

它返回一个空集。

有没有办法根据下划线中的嵌套对象获取集合的成员?

4

1 回答 1

0

您可以使用filter,它将一个函数作为其第二个参数。

var correctWay = _.filter(item['ooyala:metadata'], function(item) {
    return item['@'].name === "guid";
});

我试图找到一种将函数传递给的方法where,但没有意识到它是filter.

于 2013-11-12T22:14:12.860 回答