Use _.pick
like this:
var result = _.pick(object, array);
var object = {
A: 1,
B: 2,
C: 3,
D: 4
};
var array = ["B", "D"];
var result = _.pick(object, array);
console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
EDIT:
You should first use _.map
to get the keys and then use _.pick
like this:
var result = _.pick(object, _.map(array, function(e) {
return e.type;
}));
or using arrow functions like this:
var result = _.pick(object, _.map(array, e => e.type));
or even shorter using the iteratee
argument like this:
var result = _.pick(object, _.map(array, "type"));
var object = {
A: 1,
B: 2,
C: 3,
D: 4
};
var array = [{type: "B", value: "xyz", order: 1}, {type: "D", value: "abc", order: 0}];
var result = _.pick(object, _.map(array, "type"));
console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>