omit.js 899 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import _curry2 from "./internal/_curry2.js";
  2. /**
  3. * Returns a partial copy of an object omitting the keys specified.
  4. *
  5. * @func
  6. * @memberOf R
  7. * @since v0.1.0
  8. * @category Object
  9. * @sig [String] -> {String: *} -> {String: *}
  10. * @param {Array} names an array of String property names to omit from the new object
  11. * @param {Object} obj The object to copy from
  12. * @return {Object} A new object with properties from `names` not on it.
  13. * @see R.pick
  14. * @example
  15. *
  16. * R.omit(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, c: 3}
  17. */
  18. var omit =
  19. /*#__PURE__*/
  20. _curry2(function omit(names, obj) {
  21. var result = {};
  22. var index = {};
  23. var idx = 0;
  24. var len = names.length;
  25. while (idx < len) {
  26. index[names[idx]] = 1;
  27. idx += 1;
  28. }
  29. for (var prop in obj) {
  30. if (!index.hasOwnProperty(prop)) {
  31. result[prop] = obj[prop];
  32. }
  33. }
  34. return result;
  35. });
  36. export default omit;