Lodash _.filter 函数必须只满足 ONE 条件
Posted
技术标签:
【中文标题】Lodash _.filter 函数必须只满足 ONE 条件【英文标题】:Lodash _.filter function must only meet ONE condition 【发布时间】: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 岁或活跃的用户?
根据文档,这两个条件似乎都需要满足,如上面要返回的对象的示例。
【问题讨论】:
【参考方案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');
【讨论】:
请注意,结果是一个带有过滤值的新数组。文档链接:lodash.com/docs/4.17.14#filter【参考方案2】:同样适用于 Vue.js 中的第二种解决方案
users.filter(user =>
return user.age == 36 || user.active;
);
【讨论】:
以上是关于Lodash _.filter 函数必须只满足 ONE 条件的主要内容,如果未能解决你的问题,请参考以下文章