在UnderscoreJS中,是否有用于匹配任何键值对的集合过滤器?

时间:2013-04-04 19:01:51

标签: javascript underscore.js

我有一个查询,我需要匹配任何多个值。 _.where方法非常接近:

这是_where docs:

  

where_.where(list,properties)查看列表中的每个值,   返回包含所有值的所有值的数组   属性中列出的键值对

 _.where(listOfPlays, {author: "Shakespeare", year: 1611});
 => [{title: "Cymbeline", author: "Shakespeare", year: 1611},
     {title: "The Tempest", author: "Shakespeare", year: 1611}]

我需要一个.whereAny方法:

_.whereAny(listOfMovies, {director: "Tarantino", director: "Scorcese"});
=>[{title: "Pulp Fiction", director: "Tarantino", year:1996},{title:"Taxi", director: "Scorcese", year:1983}]

它将返回与所提供的键值对的任何匹配的对象数组。我错过了这种方法,还是有一种简单的方法可以做到这一点?

非常感谢!

更详细的解释 - 我正在尝试使用三个复选框过滤大量对象。原始数据集中的每个项目都具有与这三个值中的一个相对应的属性。如果选择复选框1(值:红色),我将获得原始数据集的子集,其中仅包含键值=红色的项目。如果你也选择复选框2(值:橙色),我将需要查询这两个值,依此类推。

1 个答案:

答案 0 :(得分:3)

您可以使用http://underscorejs.org/#filter

_.filter(listOfMovies, function(movie) { return movie.director == 'Tarantino' || movie.director == 'Scorcese'; });