diff --git a/snippets/omitBy.md b/snippets/omitBy.md new file mode 100644 index 000000000..5a4928ebc --- /dev/null +++ b/snippets/omitBy.md @@ -0,0 +1,16 @@ +### omitBy + +Creates an object composed of the properties the given function returns falsey for. The function is invoked with two arguments: (value, key). + +Use `Object.keys(obj)` and `Array.filter()`to remove the keys for which `fn` returns a truthy value. +Use `Array.reduce()` to convert the filtered keys back to an object with the corresponding key-value pairs. + +```js +const omitBy = (obj, fn) => + Object.keys(obj) + .filter(k => !fn(obj[k], k)) + .reduce((acc, key) => ((acc[key] = obj[key]), acc), {}); +``` + +```js +omitBy({ a: 1, b: '2', c: 3 }, x => typeof x === 'number'); // { b: '2' } diff --git a/snippets/pickBy.md b/snippets/pickBy.md new file mode 100644 index 000000000..949b86af1 --- /dev/null +++ b/snippets/pickBy.md @@ -0,0 +1,17 @@ +### pickBy + +Creates an object composed of the properties the given function returns truthy for. The function is invoked with two arguments: (value, key). + +Use `Object.keys(obj)` and `Array.filter()`to remove the keys for which `fn` returns a falsey value. +Use `Array.reduce()` to convert the filtered keys back to an object with the corresponding key-value pairs. + +```js +const pickBy = (obj, fn) => + Object.keys(obj) + .filter(k => fn(obj[k], k)) + .reduce((acc, key) => ((acc[key] = obj[key]), acc), {}); +``` + +```js +pickBy({ a: 1, b: '2', c: 3 }, x => typeof x === 'number'); // { 'a': 1, 'c': 3 } +``` diff --git a/tag_database b/tag_database index d9b8cf764..86117dc08 100644 --- a/tag_database +++ b/tag_database @@ -132,6 +132,7 @@ objectToPairs:object,array observeMutations:browser,event,advanced off:browser,event omit:object,array +omitBy:object,array,function on:browser,event once:function onUserInputChange:browser,event,advanced @@ -141,6 +142,7 @@ parseCookie:utility,string partition:array,object,function percentile:math pick:object,array +pickBy:object,array,function pipeFunctions:adapter,function pluralize:string powerset:math