Skip to content

Commit

Permalink
Refine _.pick
Browse files Browse the repository at this point in the history
  • Loading branch information
jridgewell committed Feb 20, 2015
1 parent 2131d6b commit b47c21a
Showing 1 changed file with 10 additions and 13 deletions.
23 changes: 10 additions & 13 deletions underscore.js
Expand Up @@ -988,23 +988,20 @@

// Return a copy of the object only containing the whitelisted properties.
_.pick = function(obj, iteratee, context) {
var result = {}, key;
var result = {}, keys;
if (obj == null) return result;
if (_.isFunction(iteratee)) {
keys = _.allKeys(obj);
iteratee = optimizeCb(iteratee, context);
var keys = _.allKeys(obj);
for (var i = 0; i < keys.length; i++) {
var key = keys[i];
var value = obj[key];
if (iteratee(value, key, obj)) result[key] = value;
}
} else {
var keys = flatten(arguments, false, false, 1);
obj = new Object(obj);
for (var i = 0, length = keys.length; i < length; i++) {
key = keys[i];
if (key in obj) result[key] = obj[key];
}
keys = flatten(arguments, false, false, 1);
iteratee = function(value, key, obj) { return key in obj; };
obj = Object(obj);
}
for (var i = 0, length = keys.length; i < length; i++) {
var key = keys[i];
var value = obj[key];
if (iteratee(value, key, obj)) result[key] = value;
}
return result;
};
Expand Down

0 comments on commit b47c21a

Please sign in to comment.