Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

249
Visualizações
Acceda a la función de filtro de JavaScript en el objeto de las funciones: no se pueden leer las propiedades de undefined (tienda Vuex)

El problema en mi tienda vuex index.js:

Quiero filtrar una matriz con otra matriz. Si accedo a la función de filtro en su objeto, obtengo un:

 TypeError: Cannot read properties of undefined (reading 'includes') at aspect_ratio (index.js?9101:72:1)

Tengo todas mis funciones de filtro en un objeto como este:

 export const filter_functions = { form_factor_landscape: (obj) => { return obj["Form Factor"] === "Landscape"; }, form_factor_portrait: (obj) => { return obj["Form Factor"] === "Portrait"; }, aspect_ratio: (obj) => state.current_features.includes(obj["Aspect Ratio"]), };

En mis getters, quiero acceder al filtro aspect_ratio de esta manera:

 export const getters = { filtered_items(state) { const filteredArray = [...state.allHandhelds].filter( filter_functions[state.current_sort] ); return filteredArray.filter(filter_functions.aspect_ratio); } }, };

mi estado es asi:

 export const state = () => ({ current_sort: "all_handhelds", current_features: ["a", "b", "c"], allHandhelds: [], });

Mis pensamientos:

Parece que hay algún problema al acceder al objeto con las funciones de filtro. O más precisamente accediendo a la matriz current_features desde el estado.

Extrañamente, si solo tomo la función de filtro fuera del objeto y la incrusto directamente, todo funciona. Como esto:

 return filteredArray.filter((obj) => state.current_features.includes(obj["Aspect Ratio"]));

¿Alguna idea de lo que estoy haciendo mal?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Hola Lisa, también tengo este problema y lo resolví usando funciones de flecha. dentro de la función de filtro no puede acceder a las variables de clase "esto". Pero puedes usar las funciones de flecha para acceder a él.

como ejemplo, desea obtener el nombre de un objeto dentro de una matriz de objetos

esto reproduce el error

 this.array.filter(function (el) { return el.id == this.variableClass.id })[0].name

esto lo arregló

 this.array.filter((el) => { return el.id == this.variableClass.id })[0].name
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda