import restArguments from './restArguments.js'; import isFunction from './isFunction.js'; import negate from './negate.js'; import map from './map.js'; import flatten from './_flatten.js'; import contains from './contains.js'; import pick from './pick.js'; // Return a copy of the object without the disallowed properties. export default 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); });