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

232
Visualizações
How to generate array of object from object

I have an object like this:

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

I want to make array of object of each key of above object like this:

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

I tried this:

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

but getting dataType: 'object' for date column but not able to achieve it. Is there any solution? Thanks in advance.

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

You can use date parse to check is a valid date or not.

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

about 4 years ago · Juan Pablo Isaza Relatório

0

You could use Object#entries with Array#map and typeof to the get the type of the value. For the case where 'date' must be used for valid time stamps, you could use Date.parse() method with Number#isNaN.

Try the following

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

Edit: Replace Object#values with Object#entries.

Edit 2: Add typeof value !== 'string' for dataType condition. Borrowed from @RahulSharma's answer.

about 4 years ago · Juan Pablo Isaza Relatório

0

You can use Object.keys() and 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);

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