【发布时间】:2017-06-10 06:24:12
【问题描述】:
我正在尝试通过另一个 JSON 对象使用 lodash 过滤一组对象。
var users = [
{ 'user': 'barney', 'name': "donald", 'active': true },
{ 'user': 'joe', 'name': "john", 'active': false },
{ 'user': 'fred', 'name': "peri", 'active': false },
{ 'user': 'fred', 'name': "aru", 'active': false },
{ 'user': 'fred', 'name': "teena", 'active': false },
{ 'user': 'fred', 'name': "nill", 'active': false },
{ 'user': 'fred', 'name': "duck", 'active': false },
{ 'user': 'barney', 'name': "resaj", 'active': false },
{ 'user': 'pebbles', 'name': "jee", 'active': true }
];
另一个 json 对象:
var searchParams = { 'user': 'ba', 'name': "don"}
如果第一个数组对象的用户包含第二个对象的用户并且第一个对象名称包含第二个对象名称而不是我想要的对象。我尝试了这段代码,但它返回 OR 条件而不是 AND 条件。
_.filter(users, function(o) {
var checkFlag = false;
_.forOwn(searchParams, function(v,k) {
if(_.includes(o[k],v)){
checkFlag = true;
return false;
}
});
return checkFlag;
});
这将返回以下结果
[{ 'user': 'barney', 'name': "donald", 'active': true },{ 'user': 'barney', 'name': "resaj", 'active': false }]
我只想要第一个对象{ 'user': 'barney', 'name': "donald", 'active': true }
任何帮助将不胜感激。任何想法
【问题讨论】:
标签: javascript arrays json underscore.js lodash