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

146
Visualizações
recorrer un objeto y devolver una matriz de objetos

¿Cómo puedo recorrer este objeto (datos) y devolver una matriz de objetos (salida) como este? básicamente con estas propiedades y valores específicos

 data = { "model-10389": 164703, "model-10388": 164704, "model-10387": 164705, } const output = [ { modelId : 10389, id : 164703 }, { modelId : 10388, id : 164704 }, { modelId : 10387, id : 164705 }, ]

esto es lo que tengo ahora

 Object.keys(data).map(function(key, index) { console.log(data[key]) });

o esto

 for (const property in data) { console.log(`${property}: ${data[property]}`); }
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Divide el problema en partes pequeñas:

  1. Obtenga todas las "entradas" del objeto de origen.
  2. Estas entradas deben transformarse, podemos usar Array.map para eso
  3. Cada entrada es una matriz [key, value] , podemos usar la desestructuración en el .map para facilitar el acceso.
  4. Para modelId , necesitamos .split la clave y obtener la parte detrás de - , luego analizarla como un número.
  5. La id es solo el valor.

 const data = { "model-10389": 164703, "model-10388": 164704, "model-10387": 164705 }; const result = Object.entries(data) .map(([key, value]) => ({ modelId: parseInt(key.split('-')[1], 10), id: value })); console.log(result);

Una alternativa un poco más rápida a split , id para usar una expresión regular para extraer ids:

 modelId: parseInt(key.match(/\d+/)[0], 10),

Sin embargo, si vamos a ir tan lejos como podamos para optimizar esta transformación, tendremos que hacer algunos cambios más:

  • Unario + en lugar de parseInt .
  • for in loop en lugar de Object.entries y .map .
  • Regex en lugar de .split

Eso te dará:

 const data = { "model-10389": 164703, "model-10388": 164704, "model-10387": 164705 }; const result = []; for (let key in data) { result.push({ modelId: +key.match(/\d+/)[0], id: data[key] }); } console.log(result);

about 4 years ago · Juan Pablo Isaza Relatório

0

Object.entries con desestructuración de objetos, sintaxis literal de objetos cortos y + unario para la conversión a número:

 const data = {"model-10389": 164703, "model-10388": 164704, "model-10387": 164705}; const output = Object.entries(data).map(([key, id]) => ({ modelId: +key.replace(/.*-/, ""), id })); console.log(output);

about 4 years ago · Juan Pablo Isaza Relatório

0

Si la clave (modelo-*) en los datos no cambia, entonces puede usar substring() con el índice.

 const data = { "model-10389": 164703, "model-10388": 164704, "model-10387": 164705 } const result = Object.entries(data) .map(([key, value]) => ({ modelId: +key.substring(6), id: value })); 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