Ordenar un array Bidimensional en JavaScript
Publicado por Ivan (5 intervenciones) el 15/11/2019 10:46:14
Buenos días, Estoy teniendo problemas a la hora de ordenar un array bidimensional. Lo que debo hacer es esto:
Mostrar los alumnos ordenados por notas en las distintas asignaturas, de mayor a menor. Es un ejercicio de clase.
Os muestro el código:
Ahora mismo me esta sacando por cada alumno todas las notas ordenadas de todos los alumnos pero debe ordenarse por nota de cada alumno.
Mostrar los alumnos ordenados por notas en las distintas asignaturas, de mayor a menor. Es un ejercicio de clase.
Os muestro el código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
var alumnos = ["Juan", "Pepe", "Alba", "Maria", "Alvaro", "Roberto", "Laura", "Daniel", "Cristina", "David"];
var asignaturas = ["Matemáticas", "Lengua", "Inglés", "Física", "Música"];
//Mostrar la tabla con las notas
function generaAleatorio(min, max) {
return Math.round(Math.random() * (max - min) + min);
}
var notas = new Array(asignaturas.length + 1);
notas[0] = new Array();
notas[0].push("X");
for (var i = 0; i < alumnos.length; i++) {
notas[0].push(alumnos[i]);
}
for (var i = 1; i < notas.length; i++) {
notas[i] = new Array(alumnos.length + 1);
notas[i][0] = asignaturas[i - 1];
}
for (var i = 1; i < notas.length; i++) {
for (var j = 1; j < notas[i].length; j++) {
notas[i][j] = generaAleatorio(0, 10);
}
}
for (var i = 1; i < notas.length; i++) {
console.log("Asignatura" + notas[i][0]);
for (var j = 1; j < notas[i].length; j++) {
console.log("Alumno " + notas[0][j] + " " + notas[i][j]);
}
}
function NotasOrdenadas() {
console.log("Notas ordenadas");
for (var i = 1; i < notas.length; i++) {
var A = notas[i].slice(1);
console.log("Asignatura" + notas[i][0]);
for (var j = 1; j < notas[i].length; j++) {
if (A.sort(function(a, b) {
return b - a;
})); {
console.log("Alumno " + notas[0][j] + " " + A);
}
}
}
}
Ahora mismo me esta sacando por cada alumno todas las notas ordenadas de todos los alumnos pero debe ordenarse por nota de cada alumno.
Valora esta pregunta


0