• Empleos
  • Sobre nosotros
  • Empleos
    • Inicio
    • Empleos
    • Cursos y retos
  • Empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

186
Vistas
Cómo generar una matriz de objetos a partir de un objeto

Tengo un objeto como este:

 { name: 'ABC', age: 12, timing: '2021-12-30T11:12:34.033Z' }

Quiero hacer una matriz de objetos de cada tecla del objeto anterior como este:

 [ { fieldName: 'name', dataType: 'string' }, { fieldName: 'age', dataType: 'number' }, { fieldName: 'timing', dataType: 'date' } ]

Intenté esto:

 let op = Object.entries(data).map(([key, value]) => ({ fieldName: key, dataType: typeof value }));

pero obteniendo tipo de datos: 'objeto' para la columna de fecha pero no puedo lograrlo. ¿Hay alguna solución? Gracias por adelantado.

over 3 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Puede usar el análisis de fecha para verificar si es una fecha válida o no.

 const input = { name: 'ABC', age: 12, timing: '2021-12-30T11:12:34.033Z' }; const output = Object.entries(input).map(([key, value]) => ({ fieldName: key, dataType: typeof value === 'string' && !isNaN(Date.parse(value)) ? 'date':typeof value })); console.log(output);

over 3 years ago · Juan Pablo Isaza Denunciar

0

Puede usar Object#entries con Array#map y typeof para obtener el tipo de valor. Para el caso en que se deba usar 'date' para marcas de tiempo válidas, podría usar el método Date.parse() con Number#isNaN .

Prueba lo siguiente

 const input = { name: 'ABC', age: 12, timing: '2021-12-30T11:12:34.033Z' }; const output = Object.entries(input).map(([key, value]) => ({ fieldName: key, dataType: typeof value !== 'string' || isNaN(Date.parse(value)) ? typeof value : 'date' })); console.log(output);
 .as-console-wrapper { max-height: 100% !important; top: 0; }

Editar: Reemplazar Object#values con Object#entries .

Edición 2: ¡Agregue typeof value !== 'string' para la dataType de tipo de datos. Tomado de la respuesta de @RahulSharma.

over 3 years ago · Juan Pablo Isaza Denunciar

0

Puede usar Object.keys() y Array.prototype.map() :

 const ip = { name: 'ABC', age: 12, timing: '2021-12-30T11:12:34.033Z' }; const op = Object.keys(ip).map((key) => ({ fieldName: key, dataType: typeof ip[key] === 'string' && !isNaN(Date.parse(ip[key])) ? 'date' : typeof ip[key] })); console.log(op);

over 3 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 Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda