我想用属性值的数组来过滤一个集合。给定一个ID数组,返回具有匹配ID的对象。是否有使用lodash
/underscore
的快捷方式
var collections = [{ id: 1, name: 'xyz' },
{ id: 2, name: 'ds' },
{ id: 3, name: 'rtrt' },
{ id: 4, name: 'nhf' },
{ id: 5, name: 'qwe' }];
var ids = [1,3,4];
// This works, but any better way?
var filtered = _.select(collections, function(c){
return ids.indexOf(c.id) != -1
});
发布于 2015-11-24 02:40:26
发布于 2016-06-15 19:23:14
我们也可以像这样过滤
var collections = [{ id: 1, name: 'xyz' },
{ id: 2, name: 'ds' },
{ id: 3, name: 'rtrt' },
{ id: 4, name: 'nhf' },
{ id: 5, name: 'qwe' }];
var filtered_ids = _.filter(collections, function(p){
return _.includes([1,3,4], p.id);
});
console.log(filtered_ids);
发布于 2018-04-21 05:50:17
这对我来说很有效:
let output = _.filter(collections, (v) => _.includes(ids, v.id));
https://stackoverflow.com/questions/17251764
复制相似问题