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

144
Vistas
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 Respuestas
Responde la pregunta

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