c01nd01r
4/8/2017 - 6:37 PM

multiple array filters with functions

multiple array filters with functions

const data = [
  {id: 1, total: 9, type: 'cashout'},
  {id: 2, total: 8, type: 'cashin'},
  {id: 3, total: 5, type: 'cashout'},
  {id: 4, total: 4, type: 'cachin'},
  {id: 5, total: 3, type: 'cashout'},
];

const filters = {
  total(val) {
    return val.total > 4;
  },
  type(val) { 
    return val.type === 'cashout';
  },
};

const filteredData = data.filter( item => 
  Object.keys(filters).every(filterIdx => filters[filterIdx](item))
);

console.log('result:', filteredData)

// result: Array(2)
// [
//  {id:1, total: 9, type: 'cashout'},
//  {id:3, total: 5, type: 'cashout'},
// ]