javascript - lodash 过滤多个匹配项属性

标签 javascript lodash

所以我尝试使用以下模板过滤我的集合:

// The `_.matchesProperty` iteratee shorthand.
_.filter(users, ['active', false]);
// => objects for ['fred']

比如说我有以下对象:

{
    name: 'Marc'
  user: {
        division:{
            id: 1
      }
  },
  status:0
}

在我的数组中,我有这个对象的许多不同实例。

现在我希望过滤我的数组,使其仅包含 status = 1user.division.id = 1

的对象

您可能会认为您会输入如下内容:

_.filter(myArr, ['user.division.id', 1], ['status', 1])

但是这不起作用:(

我也尝试过:

_.filter(myArr, ['user.division.id', 12,'status', 1])

再次得到相同的结果。

这两个都只计算第一个表达式(即):

_.filter(myArr, ['user.division.id', 1])

似乎第二个表达式从未被求值。

所以我的问题是如何对多个匹配项执行此操作?

最佳答案

好的,正如 @valz 指出的那样,我无法在 matchesProperty 中使用多个键/值

所以我做了以下事情:

var filters = {'user.division.id': 1, status:1}
_.forEach(filters, function(value, key) {
    data = _.filter(data, [key,value]);
});

关于javascript - lodash 过滤多个匹配项属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39572644/

相关文章:

javascript - 谁能告诉我为什么这不是创建一个正方形?

javascript - 从对象中删除属性而不创建新属性(无删除操作)

javascript - 将 for 循环变成 lodash _.forEach

javascript - 在javascript中从另一个数组重新构建对象数组

javascript - 如何使用Javascript替换不规则字符串前缀?

javascript - Object.create() 和 toString()

javascript - 查找一个对象是否是javascript中另一个对象的子集

javascript - 将整数数组与对象数组进行比较并返回属性

javascript - Angular-ui 模态问题

javascript - 如何将 GEvent.callbackArgs 移至 V3