这是我想要做的:
movies = [{'title': 'a', 'genres': ['Romance', 'Comedy']},
{'title': 'b', 'genres': ['Drama', 'Comedy']},
{'title': 'c', 'genres': ['Action', 'Adventure']}]
filters = ['Romance', 'Drama']
Run Code Online (Sandbox Code Playgroud)
过滤数组的所需内容:
[{'title': 'a', 'genres': ['Romance', 'Comedy']},
{'title': 'b', 'genres': ['Drama', 'Comedy']}]
Run Code Online (Sandbox Code Playgroud)
问题是我不知道如何在给定另一个值数组的情况下过滤数组.如果'filters'只是一个字符串,那么我可以这样做:
movies.filter(x => x.genres.includes(filters))
Run Code Online (Sandbox Code Playgroud)
但是,如果过滤器是一个值数组,这显然不起作用.
任何帮助深表感谢.
你很近.看起来你需要的是数组.some方法.如果任何项的回调都为真,那么该方法将返回true,因此您需要将"some"类型包含在过滤器列表中:
movies = [{
'title': 'a',
'genres': ['Romance', 'Comedy']
},
{
'title': 'b',
'genres': ['Drama', 'Comedy']
},
{
'title': 'c',
'genres': ['Action', 'Adventure']
}
]
filters = ['Romance', 'Drama']
//[{'title': 'a', 'genres': ['Romance', 'Comedy']},
// {'title': 'b', 'genres': ['Drama', 'Comedy']}]
console.log(movies.filter(x => x.genres.some(g => filters.includes(g))))Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2035 次 |
| 最近记录: |