From 021df91849aad8d1d43db0c8735b40952de45a1e Mon Sep 17 00:00:00 2001 From: xaveyaguarez Date: Sun, 17 Dec 2017 11:39:24 -0800 Subject: [PATCH] split coalesce into 2 functions --- snippets/coalesce-factory.md | 9 +++++++++ snippets/coalesce.md | 5 +---- 2 files changed, 10 insertions(+), 4 deletions(-) create mode 100644 snippets/coalesce-factory.md diff --git a/snippets/coalesce-factory.md b/snippets/coalesce-factory.md new file mode 100644 index 000000000..45f2a4cfb --- /dev/null +++ b/snippets/coalesce-factory.md @@ -0,0 +1,9 @@ +### Coalesce factory + +Returns a function which provides a customized coalesce function + +```js +const coalesceFactory = (excludes = [null, undefined]) => (...args) => args.find(_ => !excludes.includes(_)) +// const customCoalesce = coalesceFactory([null, undefined, "", NaN]) +// customCoalesce(undefined, null, NaN, "", "Waldo") -> "Waldo" +``` diff --git a/snippets/coalesce.md b/snippets/coalesce.md index d740b14c0..c8a59d5e0 100644 --- a/snippets/coalesce.md +++ b/snippets/coalesce.md @@ -1,11 +1,8 @@ ### Coalesce a set of arguments -Use `find()` to return the first non excluded argument. +Use `find()` to return the first non null/undefined argument. ```js const coalesce = (...args) => args.find(_ => ![undefined, null].includes(_)) // coalesce(null,undefined,"",NaN, "Waldo") -> "" - -const coalesceFactory = (excludes = [null, undefined]) => (...args) => args.find(_ => !excludes.includes(_)) -// coalesceFactory([null, undefined, "", NaN])(undefined, null, NaN, "", "Waldo") -> "Waldo" ```