所以我尝试使用以下模板过滤我的集合:
// The `_.matchesProperty` iteratee shorthand.
_.filter(users, ['active', false]);
// => objects for ['fred']
比如说我有以下对象:
{
name: 'Marc'
user: {
division:{
id: 1
}
},
status:0
}
在我的数组中,我有这个对象的许多不同实例。
现在我希望过滤我的数组,使其仅包含 status = 1
和 user.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/