1234567891011121314151617181920212223242526272829303132333435363738394041 |
- /*!
- * object.omit <https://github.com/jonschlinkert/object.omit>
- *
- * Copyright (c) 2014-2015, Jon Schlinkert.
- * Licensed under the MIT License.
- */
-
- 'use strict';
-
- var isObject = require('is-extendable');
- var forOwn = require('for-own');
-
- module.exports = function omit(obj, keys) {
- if (!isObject(obj)) return {};
-
- keys = [].concat.apply([], [].slice.call(arguments, 1));
- var last = keys[keys.length - 1];
- var res = {}, fn;
-
- if (typeof last === 'function') {
- fn = keys.pop();
- }
-
- var isFunction = typeof fn === 'function';
- if (!keys.length && !isFunction) {
- return obj;
- }
-
- forOwn(obj, function(value, key) {
- if (keys.indexOf(key) === -1) {
-
- if (!isFunction) {
- res[key] = value;
- } else if (fn(value, key, obj)) {
- res[key] = value;
- }
- }
- });
- return res;
- };
|