object.js 651 B

12345678910111213141516171819202122232425262728
  1. 'use strict';
  2. module.exports = {
  3. prop: function prop(_prop) {
  4. return function (obj) {
  5. return obj[_prop];
  6. };
  7. },
  8. filter: function filter(obj, pred) {
  9. return Object.keys(obj).reduce(function (filtered, key) {
  10. var value = obj[key];
  11. if (pred(key, value)) {
  12. filtered[key] = value;
  13. }
  14. return filtered;
  15. }, {});
  16. },
  17. defaults: function defaults(obj, values) {
  18. Object.keys(values).forEach(function (key) {
  19. if (!obj.hasOwnProperty(key)) {
  20. obj[key] = values[key];
  21. }
  22. });
  23. }
  24. };