Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

106
Vistas
¿Cómo distribuyo los objetos dentro de una matriz de objetos?

A continuación, agregué algunos detalles sobre los datos originales y el resultado esperado también agregué el código que probé.

Los datos originales que tengo

 original_data = [ { question_name: "What is this question for?", description: "This is a description", type: "Multi choice", answers: [ { option: "opt1", score: 2, }, { option: "opt2", score: 4, }, { option: "opt3", score: 5, }, ], }, ];

Rendimiento esperado

 expected_output = { Question: "What is this question for?", Description: "This is a description", Type: "Multi choice", option: "opt1", score: 2, option1: "opt2", score1: 4, option2: "opt3", score2: 5, };

El código que probé

 const updated_qstnData = original_data.map((d) => { const { question_name, description, type, answers, } = d; return { Question: question_name, Description: question_description, Type: answer_type, }; });

De acuerdo con el código que probé, pude crear un objeto con una pregunta , una descripción y un tipo , pero no sé cómo seleccionar la clave/valor de la matriz de respuestas de los objetos y agregarlos al objeto (updated_qstnData) que estoy creando

¿Cómo extiendo la clave/valor de respuestas a mi objeto de salida?

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Compruebe si esto ayudaría en su situación:

 const original_data = [{ "question_name":"What is this question for?", "description":"This is a description", "type":"Multi choice", "answers":[ {"option":"opt1","score":2}, {"option":"opt2","score":4}, {"option":"opt3","score":5} ] }]; let new_data = original_data.map(o => { let expected = { Question: o.question_name, Description: o.description, Type: o.type, }; if (o.answers) { o.answers.forEach((a, index) => Object.keys(a).forEach(k => expected[k + (index+1)] = a[k])); } //console.log(expected); return expected; }); console.log("new_data", new_data); console.log("first item in new_data", new_data[0]);
about 4 years ago · Juan Pablo Isaza Denunciar

0

Puedes probar esta solución

 const original_data = [ { question_name: "What is this question for?", description: "This is a description", type: "Multi choice", answers: [ { option: "opt1", score: 2, }, { option: "opt2", score: 4, }, { option: "opt3", score: 5, }, ], }, ]; const updated_qstnData = original_data.map((d) => { const { question_name, description, type, answers, } = d; const result = { Question: question_name, Description: description, Type: type, } const answerObject = answers.reduce((answerData, currentAnswer, index) => { const optionKey = index ? "option" + index : "option" const scoreKey = index ? "score" + index : "score" return { ...answerData, [optionKey]: currentAnswer.option, [scoreKey]: currentAnswer.score } }, {}) return { ...result, ...answerObject }; }); console.log(updated_qstnData)
 .as-console-wrapper { max-height: 100% !important; top: 0; }

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede asignar de forma plana la matriz de answers a las entradas de objetos y ajustar las claves según sea necesario.

Por ejemplo...

 const original_data = [{"question_name":"What is this question for?","description":"This is a description","type":"Multi choice","answers":[{"option":"opt1","score":2},{"option":"opt2","score":4},{"option":"opt3","score":5}]}]; const updated_qstnData = original_data.map((q) => ({ Question: q.question_name, Description: q.description, Type: q.type, ...Object.fromEntries( q.answers.flatMap((a, i) => { const suffix = i > 0 ? i : ""; return Object.entries(a).map(([k, v]) => [k + suffix, v]); }) ), })); console.log(updated_qstnData);
 .as-console-wrapper { max-height: 100% !important; }

about 4 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 Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda