Home > Blockchain >  filter data with multiple conditions
filter data with multiple conditions

Time:02-01

const data = [
  {
    id: 1,
    diets: ['vegan', 'diary free', 'gluten free']
  },
  {
    id: 2,
    diets: ['vegan', 'gluten free']
  },
  {
    id: 3,
    diets: ['vegan', 'diary free']
  }
];

const filters = ['gluten free', 'diary free'];

I have array of objects and want to filter out ones that satisfies all the filter values. Filtered data's diets should have all of filters.

CodePudding user response:

const data = [
  {
    id: 1,
    diets: ['vegan', 'diary free', 'gluten free'],
  },
  {
    id: 2,
    diets: ['vegan', 'gluten free'],
  },
  {
    id: 3,
    diets: ['vegan', 'diary free'],
  },
];

const filters = ['gluten free', 'diary free'];

const filteredData = data.filter((item) =>
  filters.every((filter) => item.diets.includes(filter))
);

console.log(filteredData);

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

  •  Tags:  
  • Related