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

187
Visualizações
convertir objeto a matriz de objeto

Tengo datos de backend como este:

 const fetchResult = { cmo: 'integrated', schedule1: '2021-08-12', schedule2: '2021-09-20', kendaraan: {}, kubikasi1: 207000, kubikasi2: 20000, status_so1: true, status_so2: false, }

lo que esperaba :

 const result = [ { schedule: value, kubikasi: value, status_so: true }, { schedule: value, kubikasi: value, status_so: false }, ]

Básicamente, quiero formatear json desde el backend hasta una matriz de objetos y quiero agruparlo, según el resultado esperado. y los datos, por ejemplo, como el schedule de la API, pueden ser dinámicos como el schedule6 .

lo que ya probé

 for (let i = 1; i <= 4; i++) { if (cmo["schedule_" + i]) { data.push({ schedule: cmo["schedule_" + i], namakendaraan: cmo["namakendaraan" + i], kendaraan: cmo["kendaraan" + i], totalCarton: cmo["totalCarton" + i], tonase: cmo["tonase_" + i], totalTonaseKendaraan: cmo["totalTonaseKendaraan" + i], totalPercentaseTonaseOrder: cmo["totalPercentaseTonaseOrder" + i], kubikasi: cmo["kubikasi_" + i], totalKubikasiKendaraan: cmo["totalKubikasiKendaraan" + i], totalPercentaseKubikasiOrder: cmo["totalPercentaseKubikasiOrder" + i], nomor_so: cmo["nomor_so_" + i], status_so: cmo["status_so_" + i], }); } else { data.push({ schedule: null, namakendaraan: null, kendaraan: null, totalCarton: null, tonase: null, totalTonaseKendaraan: null, totalPercentaseTonaseOrder: null, kubikasi: null, totalKubikasiKendaraan: null, totalPercentaseKubikasiOrder: null, nomor_so: null, status_so: null, }); }
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Puede reducir las entradas del objeto a un mapa. Para cada entrada, tome la clave y el número ( idx ) . Si no hay número, omita devolviendo el acumulador (el Mapa). Si existe idx , agregue/actualice el objeto en el Mapa:

 const fetchResult = {"cmo":"integrated","schedule1":"2021-08-12","schedule2":"2021-09-20","kendaraan":{},"kubikasi1":207000,"kubikasi2":20000,"status_so1":true,"status_so2":false} const result = Array.from(Object.entries(fetchResult) .reduce((acc, [k, v]) => { const [key, idx = null] = k.split(/([0-9]+$)/) return idx === null ? acc : acc.set(idx, { ...acc.get(idx), [key]: v }) }, new Map()).values()) console.log(result)

about 4 years ago · Juan Pablo Isaza Relatório

0

Agrupe todas las entradas del objeto según el número, reduzca a una matriz de matriz de matriz. Luego asigne a una matriz de objetos.

 const fetchResult = { cmo: 'integrated', schedule1: '2021-08-12', schedule2: '2021-09-20', kendaraan: {}, kubikasi1: 207000, kubikasi2: 20000,status_so1: true,status_so2: false,} const result = Object.entries(fetchResult).reduce((a,c)=>{ if(parseInt(c[0][c[0].length-1])>0){ const ind = parseInt(c[0][c[0].length-1])-1 const push = [c[0].substring(0,c[0].length-1),c[1]] !a[ind]?(a[ind]=[],a[ind].push(push)):a[ind].push(push) } return a },[]).map(el=>Object(Object.fromEntries(el))) 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