added reducedFilter snippet
This commit is contained in:
37
snippets/reducedFilter.md
Normal file
37
snippets/reducedFilter.md
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
### reducedFilter
|
||||||
|
|
||||||
|
Filter an array of objects based on condition and return array with reduced objects.
|
||||||
|
|
||||||
|
// ----------------------------------- Input -----------------------------------//
|
||||||
|
// 1. Data: the data to be filtered (array of objects) -------------------------//
|
||||||
|
// 2. Condition: will be used for filtering (string) ---------------------------//
|
||||||
|
// 3. outputProps: an array of properties that will be used to contruct --------//
|
||||||
|
// new array of objects --------------------------------------------------------//
|
||||||
|
|
||||||
|
// ----------------------------------- Output ----------------------------------//
|
||||||
|
// Filtered array with new objects. Properties of new objects are a subset of --//
|
||||||
|
// properties of original objects ----------------------------------------------//
|
||||||
|
|
||||||
|
// ----------------------------------- Info ------------------------------------//
|
||||||
|
// Used ES6 reduce -------------------------------------------------------------//
|
||||||
|
// Dummy data for testing ------------------------------------------------------//
|
||||||
|
// Generated with http://www.mockaroo.com/ -------------------------------------//
|
||||||
|
|
||||||
|
|
||||||
|
```js
|
||||||
|
const reducedFilter = (data, condition, outputProps) =>
|
||||||
|
data.reduce( (acc, item) => {
|
||||||
|
if(eval(condition)) {
|
||||||
|
const parsedObj = outputProps.reduce( (aggr, index) => {
|
||||||
|
aggr[index] = item[`${index}`];
|
||||||
|
return aggr;
|
||||||
|
}, {});
|
||||||
|
acc.push(parsedObj);
|
||||||
|
}
|
||||||
|
return (acc);
|
||||||
|
}, []);
|
||||||
|
```
|
||||||
|
###Usage Example available in :
|
||||||
|
|
||||||
|
`https://codepen.io/myapos/pen/dJGByW?editors=0112`
|
||||||
|
|
||||||
Reference in New Issue
Block a user