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

241
Visualizações
Asignar un valor de propiedad de objeto como otra propiedad de objeto

Tengo el siguiente código JavaScript

 const data = { columnFields: { columnField1: 'FieldValue1', columnField2: 'FieldValue2', columnField3: 'FieldValue3', }, dataSets: [ { columnProp1: 'value1', columnProp2: 'value2', columnProp3: 'value3', }, { columnProp1: 'value11', columnProp2: 'value22', columnProp3: 'value33', }, ], };

Me gustaría ver el resultado de estos datos:

 const expectedOutput = [ { FieldValue1: 'value1', FieldValue2: 'value2', FieldValue3: 'value3', }, { FieldValue1: 'value11', FieldValue2: 'value22', FieldValue3: 'value33', }, ];

He intentado la siguiente solución siguiente

 function processData() { const processDataSet = []; const obj = {}; data.dataSets.forEach((item) => { for (const key in item) { const element = item[key]; for (const prop in data.columnFields) { obj[data.columnFields[props]] = element; } } processDataSet.push(obj); }); return processDataSet; }

Esto me está dando la salida que no es lo que estoy buscando

 const output = [ { FieldValue1: 'value33', FieldValue2: 'value33', FieldValue3: 'value33', }, { FieldValue1: 'value33', FieldValue2: 'value33', FieldValue3: 'value33', }, ];

Es como se esperaba porque cada vez anula el valor y termina con el último valor. Ayúdenme con la dirección del código mediante el cual puedo asignar simultáneamente el valor individual en el bucle.

about 4 years ago · Santiago Gelvez
1 Respostas
Responde à pergunta

0

  • Usando Object#values en columnFields , puede obtener la lista de claves que se usarán en la matriz de objetos resultante
  • Usando Array#map , dataSets sobre conjuntos de datos
  • En cada iteración, use Object#values para obtener la lista de valores del objeto actual. Usando Array#reduce , itere sobre este último para crear un objeto con las claves calculadas al principio y los valores actuales

 const data = { columnFields: { columnField1: 'FieldValue1', columnField2: 'FieldValue2', columnField3: 'FieldValue3' }, dataSets: [ { columnProp1: 'value1', columnProp2: 'value2', columnProp3: 'value3' }, { columnProp1: 'value11', columnProp2: 'value22', columnProp3: 'value33' } ] }; const { columnFields, dataSets } = data; const keys = Object.values(columnFields); const res = dataSets.map(e => Object.values(e).reduce((acc, value, index) => ({ ...acc, [keys[index]]: value }), {}) ); console.log(res);

about 4 years ago · Santiago Gelvez 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