Javascript – 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:

    mapPick:  mapPick:function (objs,keys){
        return, 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.

Best Solution

I think the map() + pick() approach is your best bet. You could compose the callback instead of creating an inline function however:, _.partialRight(_.pick, 'key'));