Espero que estéis todos bien 🙂
Me gustaría preguntar algo que (espero) sea básico, tengo esta función que se encarga de devolver los objetos filtrados con una variable "clave" específica que se traduce en color o tamaño.
Bueno, puse las variables de color y tamaño dentro de una matriz de objetos, me gustaría saber cuál es la terminología que tengo que usar ahora en mi "elemento [clave]" para poder llegar a mi variable "color" como se muestra en la ultima foto 😦
imagen que muestra qué clave puedo obtener de vez en cuando qué clave estoy buscando obtener!
Gracias de antemano por cualquier y toda ayuda, que tenga un buen día!
aquí está el código para las dos funciones utilizadas en este proceso:
const [filtros,setFiltros] = useState({}); const gerirFiltros = (evento) =>{ const valor = evento.target.value; console.log(evento.target.name + evento.target.value) if (evento.target.name === "cor" ) { const cor = evento.target.name setFiltros( { ...filtros, ["variacoes"]:[{ [evento.target.name]:valor }], }) } else { setFiltros({ ...filtros, [evento.target.name]:valor, }) // THIS IS JUST TO PASS TO PAGE #2 (https://pastebin.com/4GH3Mi3H) THE VARIABLE `filtros` THAT IS AN ARRAY WITH MANY FILTERS LIKE -> {marca:"Paz rodrigues"}, etc..Y la función que recibe el filtro (la que creo que necesito cambiar):
useEffect(() => { categoria && setProdutosFiltrados( produtos.filter((item) => Object.entries(filtros).every(([key,value],i) => //console.log("key ->" + key + "value->" + value[0].cor) ) item[key].includes(value) ) ) )Puedes usar some()
useEffect(() => { categoria && setProdutosFiltrados( produtos.filter((item) => Object.entries(filtros).every(([key,value],i) =>{ //Here the value is an array 'variacoes' so to check colors use filter to get all the elements of 'variacoes' array; //Also assuming that the color you are passing will be available here as item[key] var allColors = item.map(i=>i.cor) return value.some((val)=>allColors.includes(val.cor)) } ) ) )