mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-08 02:17:48 +00:00
Optimize _.omit for large arrays by leveraging _.difference which has optimizations for large arrays.
This commit is contained in:
25
dist/lodash.underscore.js
vendored
25
dist/lodash.underscore.js
vendored
@@ -1594,15 +1594,20 @@
|
||||
* // => { 'name': 'fred' }
|
||||
*/
|
||||
function omit(object) {
|
||||
var indexOf = getIndexOf(),
|
||||
props = baseFlatten(arguments, true, false, 1),
|
||||
var props = [];
|
||||
forIn(object, function(value, key) {
|
||||
props.push(key);
|
||||
});
|
||||
props = difference(props, baseFlatten(arguments, true, false, 1));
|
||||
|
||||
var index = -1,
|
||||
length = props.length,
|
||||
result = {};
|
||||
|
||||
forIn(object, function(value, key) {
|
||||
if (indexOf(props, key) < 0) {
|
||||
result[key] = value;
|
||||
}
|
||||
});
|
||||
while (++index < length) {
|
||||
var key = props[index];
|
||||
result[key] = object[key];
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -1667,9 +1672,9 @@
|
||||
result = {};
|
||||
|
||||
while (++index < length) {
|
||||
var prop = props[index];
|
||||
if (prop in object) {
|
||||
result[prop] = object[prop];
|
||||
var key = props[index];
|
||||
if (key in object) {
|
||||
result[key] = object[key];
|
||||
}
|
||||
}
|
||||
return result;
|
||||
|
||||
Reference in New Issue
Block a user