我希望从集合中筛选出两个对象,条件数组是从服务器获取的,因此是不可预测的。
我的代码如下:
var users = [{
user: 'barney',
age: 36,
active: true
},
{
user: 'fred',
age: 40,
active: false
},
{
user: 'travis',
age: 37,
active: true
}
];
// the Array fetch from Server, so it's unpredictable.
var conditionArr = [{
user: 'barney'
}, {
user: 'fred'
}];
// _.filter
result = _.filter(users, conditionArr);
我期望的输出:
// expect results:
[{
user: 'barney',
age: 36,
active: true
},
{
user: 'fred',
age: 40,
active: false
}
]
真实结果:
[]
我发现一个更好的方法:
result = _.map(conditionArr, (con) => ({
...con,
...(_.find(users, { user: con.user })),
}))
thx...
intersectionBy
。 - Ori Drori