Tengo una serie de objetos como este:
const arr = [ { question_Number: 205, question_Text: "Enter Engine Number", }, { question_Number: 497, question_Text: "Whether imported?", }, { question_Number: 547, question_Text: "Whether goods are new?", }, { question_Number: 206, question_Text: "Select Vehicle Condition", },];
y quiero transformarlo en un objeto de pares clave/valor como este:
const result = { 205: { type: "string", title: "Enter Engine Number", }, 497: { type: "string", title: "Whether imported?", }, 547: { type: "string", title: "Whether imported goods are new?", }, 206: { type: "string", title: "Select Vehicle Condition", },};
¿Cómo puedo lograr este resultado usando javascript simple o incluso lodash?
Gracias.
Podría mapear entradas con nuevos objetos.
const data = [{ question_Number: 205, question_Text: "Enter Engine Number" }, { question_Number: 497, question_Text: "Whether imported?" }, { question_Number: 547, question_Text: "Whether goods are new?" }, { question_Number: 206, question_Text: "Select Vehicle Condition" }], result = Object.fromEntries(data.map(({ question_Number, question_Text: title }) => [question_Number, { type: 'string', title }])); console.log(result); .as-console-wrapper { max-height: 100% !important; top: 0; }Puede hacer esto con cosas integradas, pero creo que esto sería más comprensible para ver qué está pasando, algo muy rápido:
const input = [ { question_Number: 205, question_Text: "Enter Engine Number", }, { question_Number: 497, question_Text: "Whether imported?", }, { question_Number: 547, question_Text: "Whether goods are new?", }, { question_Number: 206, question_Text: "Select Vehicle Condition", } ] const transformArray = (arr) => { let result = {} for (let i = 0; i < arr.length; i++) { result[arr[i].question_Number] = { type: typeof arr[i].question_Text, title: arr[i].question_Text } } return result } console.log(transformArray(input))