嵌套多个筛选方法javascript

嵌套多个筛选方法javascript,javascript,arrays,filter,foreach,Javascript,Arrays,Filter,Foreach,我正试图完成一项挑战,我被卡住了: 我有一个大电影数组,里面有一个属性genreName,这是另一个数组。我想通过选中selectedGenres数组中存储的复选框中的选定类型来筛选这部电影 我的困难出现在这里,当我必须对照selectedGenres中的所有元素检查每个genreName数组时。任务是,如果selectedGenres中有多个类型,则只显示具有所有这些选定类型的电影,而不只是其中一种 代码: 你在找每一个 康斯特电影=[ {片名:电影1,genreName:[动作,戏剧]},

我正试图完成一项挑战,我被卡住了: 我有一个大电影数组,里面有一个属性genreName,这是另一个数组。我想通过选中selectedGenres数组中存储的复选框中的选定类型来筛选这部电影 我的困难出现在这里,当我必须对照selectedGenres中的所有元素检查每个genreName数组时。任务是,如果selectedGenres中有多个类型,则只显示具有所有这些选定类型的电影,而不只是其中一种

代码:

你在找每一个

康斯特电影=[ {片名:电影1,genreName:[动作,戏剧]}, {片名:电影2,genreName:[动作、幻想、冒险]}, {片名:电影3,genreName:[动作、幻想、科幻]}, {片名:电影4,genreName:[动作、戏剧、惊悚片]} ]; 常量过滤器=[“动作”、“戏剧”]; const result=movies.filterm=>filter.length==m.genreName.length&&m.genreName.everyg=>filter.includesg; console.logresult 在电影上使用,对于已选择流派的电影返回true

康斯特电影公司=[ {片名:电影1,genreName:[动作,戏剧]}, {片名:电影2,genreName:[动作、幻想、冒险]}, {片名:电影3,genreName:[动作、幻想、科幻]}, {片名:电影4,genreName:[动作、戏剧、惊悚片]} ] const selectedGenres=[动作、戏剧]//基于此选择,filteredMovies变量中应仅包含movie1和movie4。 const filteredMovies=movies.filtermovie=>selectedGenres.everyfilter=>movie.genreName.includeFilter console.logfilteredMovies;
const movies = [ 
{title:"movie 1",genreName:["Action", "Drama"]},
{title:"movie 2",genreName:["Action", "Fantasy", "Adventure"]},
{title:"movie 3",genreName:["Action", "Fantasy", "Science Fiction"]},
{title:"movie 4",genreName:["Action", "Drama", "Thriller"]}
]
const selectedGenres = ["Action","Drama"];  //based on this selection, only movie1 and movie4 should be in the filteredMovies variable.

const filteredMovies = movies.filter(movie => { //loop through each movie
        movie.genreName.filter(genre => { // loop through each item in genreName array
          return selectedGenres.forEach(name => { // loop through each item in selectedGenres array
            return name.indexOf(genre) > -1;
          });
        });
      });