【问题标题】:Lodash _.filter function must only meet ONE conditionLodash _.filter 函数必须只满足 ONE 条件
【发布时间】:2015-10-13 18:28:58
【问题描述】:

我目前正在使用 Lodash _.filter() 函数根据用户搜索过滤满足特定条件的对象,这些条件可以是街道地址、城镇或国家。 p>

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

为了解释,我想使用网站上的示例。

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 岁或活跃的用户?

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

【问题讨论】:

    标签: javascript arrays angularjs object lodash


    【解决方案1】:

    您可以将函数传递给_.filter

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

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

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

    【讨论】:

    【解决方案2】:

    同样适用于 Vue.js 中的第二种解决方案

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多