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

148
Visualizações
Crear una matriz de objetos con valores de otro objeto

Tengo un objeto con este aspecto

 const item = { id: 123, type: 'book', sections: [{ type: 'section', id: '456', index: 1, lessons: [{ type: 'lesson', id: 789, index: 1 }, { type: 'lesson', id: 999, index: 2 } ] }, { type: 'section', index: 2, id: 321, lessons: [{ type: 'lesson', id: 444, index: 1 }, { type: 'lesson', id: 555, index: 2 } ] }] }

Se debe suponer que hay más objetos en la matriz de secciones y lecciones. Quiero crear un nuevo objeto como este.

 result = [{ section: 456, lessons: [789, 999] }, { section: 321, lessons: [444, 555] }]

Probé este ciclo, pero esto solo empuja los índices y no las identificaciones de la lección

 let obj = {}; let sectionWithLessons = []; let lessons = [] for (const i in item.sections) { obj = { sectionId: item.sections[i].id, lessonIds: item.sections[i].lessons.map((lesson) => { return lessons.push(lesson.id) }), }; sectionWithLessons.push(obj); } console.log(sectionWithLessons);

¿Cómo puedo hacer esto correctamente y preferiblemente teniendo en cuenta un buen rendimiento?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Creo que lo mejor/más corto es usar la función de mapa, como:

 const result2 = item.sections.map(({id, lessons}) => ({ id, lessons: lessons.map(({id: lessionId}) => lessionId) }))
about 4 years ago · Juan Pablo Isaza Relatório

0

Sugeriría usar Array.map() para convertir las secciones de elementos al resultado deseado.

Convertiríamos cada sección en un objeto con un valor de section y una matriz de lessons .

Para crear la matriz de lecciones, nuevamente usamos Array.map() para asignar cada lección a una identificación de lección.

 const item = { id: 123, type: 'book', sections: [{ type: 'section', id: '456', index: 1, lessons: [{ type: 'lesson', id: 789, index: 1 }, { type: 'lesson', id: 999, index: 2 } ] }, { type: 'section', index: 2, id: 321, lessons: [{ type: 'lesson', id: 444, index: 1 }, { type: 'lesson', id: 555, index: 2 } ] }] } const result = item.sections.map(({ id, lessons }) => { return ({ section: +id, lessons: lessons.map(({ id }) => id) }) }); console.log('Result:', result);
 .as-console-wrapper { max-height: 100% !important; }

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