我有一个查询,我需要匹配任何多个值。 _.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(值:橙色),我将需要查询这两个值,依此类推。
答案 0 :(得分:3)
您可以使用http://underscorejs.org/#filter:
_.filter(listOfMovies, function(movie) { return movie.director == 'Tarantino' || movie.director == 'Scorcese'; });