12345678910111213141516171819202122232425262728293031323334353637383940 |
- /*!
- * 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;
- };
|