Files
30-seconds-of-code/snippets/defaults.md
Isabelle Viktoria Maciohsek 27c168ce55 Bake date into snippets
2021-06-13 13:55:00 +03:00

678 B

title, tags, firstSeen, lastUpdated
title tags firstSeen lastUpdated
defaults object,intermediate 2018-01-19T13:51:05+02:00 2020-10-22T20:23:47+03:00

Assigns default values for all properties in an object that are undefined.

  • Use Object.assign() to create a new empty object and copy the original one to maintain key order.
  • Use Array.prototype.reverse() and the spread operator (...) to combine the default values from left to right.
  • Finally, use obj again to overwrite properties that originally had a value.
const defaults = (obj, ...defs) =>
  Object.assign({}, obj, ...defs.reverse(), obj);
defaults({ a: 1 }, { b: 2 }, { b: 6 }, { a: 3 }); // { a: 1, b: 2 }