MultiFilter with Multiple Criterias

PHOTO EMBED

Fri Jun 30 2023 15:37:24 GMT+0000 (Coordinated Universal Time)

Saved by @devton #javascript

@param -> items : Conjunto de datos a recorrer, este debe de ser un Array de Objetos.
@param -> filters : Conjunto de criterior y valores a buscar, el parametro debe de ser de tipo objeto dentro de la cual debe de haber objetos de tipo array, como se muestra en el ejemplo de las notas.
const multiFilter = (items, filters) => {
  const filterKeys = Object.keys(filters);
  return items.filter(item => {
    return filterKeys.every(key => {
      if (!filters[key].length) return true;
      if (Array.isArray(item[key])) {
        return item[key].some(keyEle => filters[key].includes(keyEle));
      }
      return filters[key].includes(item[key]);
    });
  });
};
content_copyCOPY

El parametro filters debe de ser con la siguiente estructura: const collectedTrueKeys = { color: [], gender: [], material: [], category: [] };
https://betterprogramming.pub/creating-a-multi-filter-function-to-filter-out-multiple-attributes-javascript-react-rails-5aad8e272142