added reducedFilter snippet

This commit is contained in:
myapos
2017-12-22 09:37:36 +02:00
parent 4a8f6b83a9
commit 69ec3c3fe7

37
snippets/reducedFilter.md Normal file
View 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`