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

116
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 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