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

In UnderscoreJS, is there a collection filter for matching any of the key-value pairs?

本文关键字:键值对 任何 集合 过滤器 UnderscoreJS 是否 用于 存在      更新时间:2023-09-26

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

这里是_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 (value:Red),我将得到原始数据集的一个子集,其中只包含那些key-value = Red的项。如果您还选择了复选框2 (value:Orange),那么我将需要查询这两个值,等等。

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

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