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

137
Visualizações
JS: extracción de datos de una matriz de objetos

Tengo una consulta compleja con cientos de campos y campos anidados. Lo que quiero hacer es, para cada índice, extraer el texto en inglés y francés. Como puede ver en la matriz, no hay texto en francés para algunos índices. En ese caso, quiero obtener el texto en inglés. Para mí, extraer el texto en inglés funciona bien porque el texto ya está allí, pero en el caso del francés, obtengo errores indefinidos. ¿Cuál sería la mejor manera de implementar esto? ¿Se necesita Loadash para esto o solo métodos JS puros?

Para que quede claro, tengo errores al extraer el francés porque en algunos campos, el texto en francés no está disponible, quiero usar el valor en inglés en ese caso.

También se recomienda si puedo obtener los valores en inglés y francés por su campo de idioma en lugar del índice. No tengo idea de cómo hacer eso.

Cualquier sugerencia, la documentación es apreciada. ¡Gracias!

matriz de ejemplo:

 [ { id: "1", name: [ { language: "en-US", text: "HOLIDAY" } ], order: 6, Groups: [ { name: [ { language: "en-US", text: "REGULAR" } ], code: "REGEARN" }, { name: [ { language: "en-US", text: "CHARGE" } ], code: "CHARGE" } ] } ]

y aquí está el código sandbox que reproduce mi error: CODE SAND BOX https://codesandbox.io/s/javascript-forked-5073j

EDITAR:

RENDIMIENTO ESPERADO:

 { key: key, englishtext: "Value Here", frenchtext: "Value Here" }

a continuación hay un código que funciona, pero el problema es que no funciona cuando no hay idioma francés o ese campo. Recibo errores indefinidos. Entonces, ¿es posible que pueda obtener los datos necesarios del campo de idioma?

 x.map((y) => ({ key: y.id, name: y.name[0].text, groupname: y.Groups ? x.Groups[0].name?.[0].text : 'N/A', }))
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

¿Esperas un resultado como este? Si no te importa lodash.

 const _ = require('lodash'); const getNames = (arr) => { return arr.map((obj) => { const id = obj.id; const englishtext = _.get(obj, 'name[0].text', 'N/A'); const frenchtext = _.get(obj, 'name[1].text', englishtext); return { id, englishtext, frenchtext }; }); }; console.log(getNames(x)); // [ // { id: '1', englishtext: 'HOLIDAY', frenchtext: 'HOLIDAY' }, // { id: '2', englishtext: 'Stat Holiday', frenchtext: 'Congé Férié' }, // { id: '3', englishtext: 'Over', frenchtext: 'Over' } // ]
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