Tengo una tabla en la que se muestran 5 pilotos, con varios valores
@DancingMonki (https://underc0de.org/foro/index.php?action=profile;u=116623)
Tienes que usar un algoritmo de ordenamiento. Como recomendación 'quicksort', pero en este caso te muestro el algoritmo burbuja que aunque es menos eficiente, es más sencillo de implementar, y puede servir más o menos para darte una idea.
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div class="principal">
<script>
var pilotos = new Array();
var temp;
var config_order = 0; // `1` de menor a mayor; `0` de mayor a menor.
function compare_size(x, y) {
if (config_order) {
if (x > y) {
return true;
}
} else {
if (x < y) {
return true;
}
}
return false;
}
pilotos = [
[
"Lando Norris", 4, 60
],
[
"Sebastian Vettel", 5, 10
],
[
"Carlos Sainz", 55, 50
],
[
"Lewis Hamilton", 44, 15
],
[
"Kimi Rikkonen", 7, 37
],
];
let i = pilotos.length;
while (--i > 0) {
for (let j = 0; j < pilotos.length-1; j++) {
if (compare_size(pilotos[j][2], pilotos[j+1][2])) {
temp = pilotos[j];
pilotos[j] = pilotos[j+1];
pilotos[j+1] = temp;
}
}
}
document.write('<div class="contenedor">');
for (i = 0; i < pilotos.length; i++) {
document.write('<div class="caja">');
document.write('<div class="detallito">', '<div class="name"><div class="namecolor"><h3>' + pilotos[i][0] + '</h3></div><h4>');
document.write('<div class="numbcolor">', 'Número: ' + pilotos[i][1] + '</div></h4></div>');
document.write('<div class="marks"><div class="time"><h3>', 'Tiempo: ' + pilotos[i][2] + ' minutos', '</h3></div></div></div>');
document.write('</div>');
}
</script>
</div>
</body>
</html>
~ DtxdF
Hola, que tal esto? https://mottie.github.io/tablesorter/
Saludos.