【发布时间】:2017-09-23 17:01:03
【问题描述】:
假设我有一个遵循以下模式的对象数组:
var posts = [
{
title: post_ab,
category_array : [
{ id: 1, slug: category-a },
{ id: 2, slug: category-b }
]
},
{
title: post_ac,
category_array : [
{ id: 1, slug: category-a },
{ id: 3, slug: category-c }
]
},
{
title: post_bc,
category_array : [
{ id: 2, slug: category-b },
{ id: 3, slug: category-c }
]
}
]
我正在尝试过滤上述数组,并且只返回 category_array 包含与指定值匹配的 slug 的值。
例如,如果我想过滤 'category-c',则只会返回第二个和第三个值(post_ac 和 post_bc)。
我尝试过使用嵌套过滤器,但这让我无处可去:
var currentCategory = 'category-b';
var filteredPosts = function( posts ) {
return posts.filter( function( post ){
return post.category_array.filter( function( category ){
return category.slug === currentCategory;
})
})
}
【问题讨论】:
-
将内部过滤器更改为Array#some,例如
post.category_array.some它应该可以正常工作。
标签: javascript arrays loops filter