equivalent of _.pick() but for array in Lo-dash

I have the following collection:

var columns = [
    { key:'url', width:20, type:'text' },
    { key:'title', width:21, type:'text' },
    { key:'desc', width:22, type:'text' },
    { key:'domain', width:23, type:'text' },
    { key:'user', width:24, type:'text' }
];

I’m looking for a method to map an array of objects with picked keys, something along the lines of:

_.mapPick(columns, [width]) 
// [{width:20},{width:21},{width:22},{width:23},{width:24}]

I know I can extend lo-dash like this:

_.mixin({
    mapPick:  mapPick:function (objs,keys){
        return _.map(objs, function (obj) {
            return _.pick(obj,keys)
        })
    }

});

I’m not sure if there is some native function that I’m missing.

I found a similar question here but I’m looking for a more lo-dash native way.

94 thoughts on “equivalent of _.pick() but for array in Lo-dash”

Leave a Comment