Closed GuillermoBaldan closed 6 years ago
@GuillermoBaldan lo más fácil para pensar en estructuras de datos es hacer uso de algún sistema como json-generator. Es más sencillo partir de este punto.
var listaCursos = [{
titulo: "Mecanica avanzada I",
ref: "0001",
tipo: "online"
}, {
titulo: "Mecanica de fuidos IV",
ref: "0023",
tipo: "presencial"
}]
Mañana lo vemos si quieres en clase.... en principio en unas pocas clases ya estaremos viendo estructuras de datos ;-)
A ver... En principio me vale esto, que lo saqué de esta pregunta que publiqué en stackoverflow:
var usercourses = [] //Aquí cambié la expresión var usercourses = new Object();
var listofcourses = ['matemáticas', 'geografía', 'física', 'biología', 'filosofía'];
var numberofcourses = Math.floor(Math.random()*listofcourses.length);
for (i = 0; i < numberofcourses; i++) {
usercourses[i] = new Object();
usercourses[i].coursename = listofcourses[Math.floor(Math.random() * listofcourses.length)];
usercourses[i].progress = Math.floor(Math.random() * 100);
}
for (var c in usercourses) {
console.log(c, usercourses[c]);
}
Lo pegué en mi programa y me funciona
¿Qué opinas Ulises?
No pinta mal estructura, pero tendríamos que ver como escalaría cuando tengas muchos cursos y alumn@s ;-)
Bueno, eso creo que sería otro issue. Voy a cerrar este.
Se puede mirar una introducción a esta cuestión en un issue planteado anteriormente, creo que podría ayudar a enteder este issue aunque creo que este se puede entender por si mismo: ¿Cómo me monto un array de objetos? Queremos generar dinámicamente un array de objetos que contengan dos propiedades o atributos llamados:
El nombre del array de objetos es usercourses. Yo había pensado lo siguiente:
listofcourses
es una lista de cursos y la expresión:listofcourses[Math.floor(Math.random()*listofcourses.length)];
lo que hace es retornar un curso de forma aleatoria de la lista de cursos.numberofcourses
es un número aleatorio que depende de la longitud delistofcourses
.El problema La consola me arroja un error:
dándome el fallo en la siguiente línea de código:
usercourses[i].progress = Math.floor(Math.random()*100);