javascript - Lo-Dash - help me understand why _.pick doesn't work the way I expect -


this works:

mycollection.prototype.select = function (properties) {    var self = this;     return {       where: function (conditions) {          return _.chain(self.arrayofobjects)            .where(conditions)            .map(function (result) {               return _.pick(result, properties);            })            .value();       }    }; }; 

it allows me query collection so:

var people = collection              .select(['id', 'firstname'])              .where({lastname: 'mars', city: 'chicago'}); 

i expected able write code this, though:

mycollection.prototype.select = function (properties) {    var self = this;     return {       where: function (conditions) {          return _.chain(self.arrayofobjects)            .where(conditions)            .pick(properties);            .value();       }    }; }; 

lo-dash documentation specifies _.pick callback "[callback] (function|…string|string[]): function called per iteration or property names pick, specified individual property names or arrays of property names." led me believe supply properties array, applied each item in arrayofobjects meets conditions. missing?

http://lodash.com/docs#pick

it expects object first parameter, you're giving array.

arguments  1. object (object): source object. 2. ... 3. ... 

i think best can do:

mycollection.prototype.select = function (properties) {    var self = this;     return {       where: function (conditions) {          return _.chain(self.arrayofobjects)            .where(conditions)            .map(_.partialright(_.pick, properties))            .value();       }    }; }; 

Comments

Popular posts from this blog

javascript - how to protect a flash video from refresh? -

android - Associate same looper with different threads -

visual studio 2010 - Connect to informix database windows form application -