object.js 528 B

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