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
