diff --git a/README.md b/README.md index cb5d6c3df..5713f6300 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,7 @@ * [Last of list](#last-of-list) * [Measure time taken by function](#measure-time-taken-by-function) * [Object from key value pairs](#object-from-key-value-pairs) +* [Pipe](#pipe) * [Powerset](#powerset) * [Random number in range](#random-number-in-range) * [Randomize order of array](#randomize-order-of-array) @@ -337,6 +338,15 @@ const objectFromPairs = arr => arr.reduce((a,b) => (a[b[0]] = b[1], a), {}); // objectFromPairs([['a',1],['b',2]]) -> {a: 1, b: 2} ``` +### Pipe + +Use `Array.reduce()` to pass value through functions. + +```js +const pipe = (...funcs) => arg => funcs.reduce((acc, func) => func(acc), arg); +// pipe(btoa, x => x.toUpperCase())("Test") -> "VGVZDA==" +``` + ### Powerset Use `reduce()` combined with `map()` to iterate over elements and combine into an array containing all combinations. diff --git a/snippets/pipe.md b/snippets/pipe.md new file mode 100644 index 000000000..c61ec042c --- /dev/null +++ b/snippets/pipe.md @@ -0,0 +1,8 @@ +### Pipe + +Use `Array.reduce()` to pass value through functions. + +```js +const pipe = (...funcs) => arg => funcs.reduce((acc, func) => func(acc), arg); +// pipe(btoa, x => x.toUpperCase())("Test") -> "VGVZDA==" +```