如何以最有效的方式(通过Underscore或纯JS)查找在其数组属性之一中具有特定值的项目集合?
例如。:
var collection = [
{
name: 'item 1',
tags: [
'tag-1',
'tag-2',
'tag-3'
]
},
{
name: 'item 2',
tags: [
'tag-2',
'tag-4',
'tag-5'
]
},
{
name: 'item 3',
tags: [
'tag-1',
'tag-3',
'tag-4'
]
}
];
我想获取所有在其
tags-3
属性中具有tags
的项目。因此,我期望得到:
{
name: 'item 1',
tags: [
'tag-1',
'tag-2',
'tag-3'
]
},
{
name: 'item 3',
tags: [
'tag-1',
'tag-3',
'tag-4'
]
}
最佳答案
您可以使用Underscore的filter
function进行过滤:
var results = _.filter(collection, function(item) {
return item.tags.indexOf("tag-3") !== -1;
});
还有ES5的
Array#filter
(在旧版浏览器中需要填充):var results = collection.filter(function(item) {
return item.tags.indexOf("tag-3") !== -1;
});
关于javascript - JS:查找在其数组属性之一中具有特定值的项目的集合,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21684198/