Lodash _.filter函数必须只满足一个条件

时间:2015-07-23 12:36:32

标签: javascript arrays angularjs object lodash

我目前正在使用Lodash _。filter()功能根据用户搜索过滤符合特定条件的对象,该搜索可以是街道地址,城镇或国家/地区。

我已经提取了搜索字符串,并希望针对每个对象中的多个值对其进行过滤,并且如果在任何这些键中找到该字符串,则必须返回该对象。

要解释我想使用网站上的例子。

var users = [
  { 'user': 'barney',  'age': 36, 'active': true },
  { 'user': 'fred',    'age': 40, 'active': false },
  { 'user': 'pebbles', 'age': 1,  'active': true }
];

// using the `_.matches` callback shorthand
_.result(_.find(users, { 'age': 1, 'active': true }), 'user');

在此示例中,我将如何过滤年龄为36岁或处于活动状态的用户?

根据文档,似乎需要满足这两个条件,如上面的示例所示,要返回的对象。

2 个答案:

答案 0 :(得分:43)

您可以将功能传递给_.filter

_.filter(users, function(user) {
    return user.age === 36 || user.active;
});

您可以使用与_.find相同的技术:

_.result(_.find(users, function(user) {
    return user.age === 36 || user.active;
}), 'user');

答案 1 :(得分:0)

还在Vue.js中使用第二种解决方案

users.filter(user => {
                return user.age == 36 || user.active;
            });