Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

257
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!