var restArguments = require('./restArguments.js'); var isFunction = require('./isFunction.js'); var negate = require('./negate.js'); var map = require('./map.js'); var _flatten = require('./_flatten.js'); var contains = require('./contains.js'); var pick = require('./pick.js'); // Return a copy of the object without the disallowed properties. var omit = restArguments(function(obj, keys) { var iteratee = keys[0], context; if (isFunction(iteratee)) { iteratee = negate(iteratee); if (keys.length > 1) context = keys[1]; } else { keys = map(_flatten(keys, false, false), String); iteratee = function(value, key) { return !contains(keys, key); }; } return pick(obj, iteratee, context); }); module.exports = omit;