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

143
Vistas
Crear un objeto simple a partir de una matriz anidada de objetos de matrices

Hola amigos, tengo mis datos json como este

 http://json-parser.com/24145c52

Quiero que cambie en esta forma (matriz de objetos

 const model = [ { instituteName:instituteName, courseName:courseName, studentFirstname:studentFirstname, studentSurname:studentSurname, appreciation:appreciation, finalGrade:finalGrade, behaviour:behaviour, completenessOfStapler:completenessOfStapler }, { instituteName:instituteName, courseName:courseName, studentFirstname:studentFirstname, studentSurname:studentSurname, appreciation:appreciation, finalGrade:finalGrade, behaviour:behaviour, completenessOfStapler:completenessOfStapler } ]

Por favor, ayúdame en esto

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

0

Primero tendrás que iterar sobre los datos.

Luego interactúa con los cursos del instituto.

Luego iterar sobre los estudiantes asignados a esos cursos

Se verá algo así

 const model = []; for (let i = 0; i < jsonParserData.institutes.length; i++) for (let j = 0; j < jsonParserData.institutes[i].courses.length; j++) for (let k = 0; k < jsonParserData.institutes[i].courses[j].students.length; k++) { model.push({ instituteName: jsonParserData.institutes[i].name, courseName: jsonParserData.institutes[i].courses[j].name, studentFirstname: jsonParserData.institutes[i].courses[j].students[k].firstName, studentSurname: jsonParserData.institutes[i].courses[j].students[k].surname, }); jsonParserData.institutes[i].courses[j].students[k].attributes.map((item) => { switch (item.option) { case "apreciation": model[model.length - 1].apreciation = item.value; break; case "finalGrade": model[model.length - 1].finalGrade = item.value; break; case "behaviour": model[model.length - 1].behaviour = item.value; break; case "completenessOfStapler": model[model.length - 1].completenessOfStapler = item.value; break; } }); }

O usando una sintaxis más nueva

 for (let institute of jsonParserData.institutes) for (let course of institute.courses) for (let student of course.students) { model.push({ instituteName: institute.name, courseName: course.name, studentFirstname: student.firstName, studentSurname: student.surname, }); student.attributes.map((item) => { switch (item.option) { case "apreciation": model[model.length - 1].apreciation = item.value; break; case "finalGrade": model[model.length - 1].finalGrade = item.value; break; case "behaviour": model[model.length - 1].behaviour = item.value; break; case "completenessOfStapler": model[model.length - 1].completenessOfStapler = item.value; break; } }); }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede hacer esto ejecutando un simple sobre los datos como este

 // This is an empty array to store data const model = []; // This is the data array const dataArr = []; // looping over the main array dataArr.map((data) => { let Obj = { instituteName: "", courseName: "", studentFirstname: "", studentSurname: "", appreciation: "", finalGrade: "", behaviour: "", completenessOfStapler: "", }; // looping over the courses array inside main array data.map((course) => { // looping over the students array inside main course course.map((student) => { let Obj = { instituteName: data.name, courseName: course.name, studentFirstname: student.firstName, studentSurname: student.surName, appreciation: "", finalGrade: "", behaviour: "", completenessOfStapler: "", }; model.push(Obj); }); }); });
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