Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

292
Vistas
Usando Map y Filter al mismo tiempo en JavaScript

Estoy tratando de usar el ejemplo de mapa y filtro en:

https://masteringjs.io/tutorials/fundamentals/map-filter#:~:text=JavaScript%27s%20Array%23map%20%28%29%20and%20Array%23filter%20%28%29%20functions%20are ,function%20works%20fine%20on%20an%20array%20of%20numbers .

 var data = [ { "pmid": 12637528, "citation_count": 75 }, { "pmid": 12732634, "citation_count": 49 }, { "pmid": 15118089, "citation_count": 88 } ]

estoy usando

 let iIndex = data.map(d => d.citation_count).filter( d.citation_count >=50);

y

 let iIndex = data.map(d => d.citation_count).filter( data.citation_count >=50);

pero aparece el siguiente error: "err = ReferenceError: d no está definido en eval" o con data.citation err = TypeError: false no es una función en Array.filter

Si quito el filtro .funciona bien, y obtengo una matriz solo del recuento de citas. ¿Alguien puede ayudar con la sintaxis correcta para la parte del filtro? He buscado stackOverflow pero hay muchas respuestas que tienen alrededor de 10 años y no estoy seguro de cuál ha sido la dirección más actual. Incluso he visto una mención de flatMap. Gracias por la ayuda

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

No es necesario tener d.citation_count en el filtro:

 let iIndex = data.map(d => d.citation_count).filter( d => d >=50);
about 4 years ago · Juan Pablo Isaza Denunciar

0

La razón por la que su código está fallando es porque el filter espera una función que devuelva un booleano: le ha proporcionado una expresión.

Una solución simple a su código sería envolver su expresión en una función anónima:

 const result = data.map(item => item.citation_count).filter(count => count >= 50)

También podría simplemente usar reduce , que combina el efecto de las funciones de filter y map , lo que hace que el código sea más eficiente:

 const data = [ { pmid: 12637528, citation_count: 75 }, { pmid: 12732634, citation_count: 49 }, { pmid: 15118089, citation_count: 88 }, ] const result = data.reduce((result, { citation_count }) => { if (citation_count >= 50) { result.push(citation_count) } return result }, []) console.log(result)

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda