Add defaults
This commit is contained in:
13
snippets/defaults.md
Normal file
13
snippets/defaults.md
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
### defaults
|
||||||
|
|
||||||
|
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.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.
|
||||||
|
|
||||||
|
```js
|
||||||
|
const defaults = (obj, ...defs) => Object.assign({}, obj, ...defs.reverse(), obj);
|
||||||
|
```
|
||||||
|
|
||||||
|
```js
|
||||||
|
defaults({ 'a': 1 }, { 'b': 2 }, { 'b': 6 }, { 'a': 3 }); // { a: 1, b: 2 }
|
||||||
|
```
|
||||||
@ -28,6 +28,7 @@ currentURL:browser,url
|
|||||||
curry:function,recursion
|
curry:function,recursion
|
||||||
decapitalize:string,array
|
decapitalize:string,array
|
||||||
deepFlatten:array,recursion
|
deepFlatten:array,recursion
|
||||||
|
defaults:object
|
||||||
defer:function
|
defer:function
|
||||||
detectDeviceType:browser
|
detectDeviceType:browser
|
||||||
difference:array,math
|
difference:array,math
|
||||||
|
|||||||
Reference in New Issue
Block a user