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

118
Vistas
Filtro json de Javascript con función de flecha

Me preguntaba cómo puedo filtrar los valores "etiquetas" en el json anterior usando una función de flecha:

 const ttag = [{ "code": 795302828, "code_integration": "123", "company": "ACME LTD", "phone": "135575788", "tags": [{"tag": "companyAA"}, {"tag": "companyBB"}, {"tag": "companyCC"}, {"tag": "companyDD"} ], "status": "Y" }] const onlyTags = ttag.filter(f => f.tags) console.log(onlyTags)

resultado esperado: ['companyAA', 'companyBB', 'companyCC', 'companyDD']

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

0

En primer lugar, no es así como funciona el método de filter . Filter devuelve una matriz con valores que son true para la función pasada como argumento. Más puedes leer aquí .

Podrías usar map & flatMap , así:

 ttag.flatMap(f => f.tags.map(t => t.tag));

map devuelve una matriz de valores especificados en el método pasado. flatMap hace lo mismo, pero si el resultado es una matriz, la aplana, por lo que el resultado es una matriz de cadenas en lugar de una matriz de matrices de cadenas.

Importante

flatMap no es compatible con Internet Explorer, pero ya no es un navegador compatible, por lo que no me molestaría.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Tal vez sea una forma fea de hacerlo, pero con el primer .map obtienes cada elemento de la matriz principal y con el segundo .map una matriz de etiquetas dentro de él.

 const ttag = [{ "code": 795302828, "code_integration": "123", "company": "ACME LTD", "phone": "135575788", "tags": [{"tag": "companyAA"}, {"tag": "companyBB"}, {"tag": "companyCC"}, {"tag": "companyDD"} ], "status": "Y" }] const onlyTags = ttag.map(f => f.tags.map(t => t.tag)); console.log(onlyTags); console.log(onlyTags[0]); // expected output

about 4 years ago · Juan Pablo Isaza Denunciar

0

Aquí hay una solución usando map y reduce. Al final, la matriz se aplana, por lo que solo devuelve una matriz que contiene los nombres de las ciudades.

 const ttag = [{ "code": 795302828, "code_integration": "123", "company": "ACME LTD", "phone": "135575788", "tags": [{ "tag": "companyAA" }, { "tag": "companyBB" }, { "tag": "companyCC" }, { "tag": "companyDD" } ], "status": "Y" }] const result = ttag.map(obj => obj.tags.reduce((acc, next) => [...acc, next.tag], [])).flat() 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