¿Cómo puedo hacer para ordenar alfabéticamente un select de HTML en JavaScript?

Me gustaría saber como puedo hacer para ordenar alfabéticamente un select de HTML en javaScript. Te explico:
Tengo un formulario que coge unos datos de la bases de datos pero que no los puedo ordenar alfabéticamente al cogerlos porque tengo que modificar el nombre a la vez que los voy cogiendo.. El caso es que al acabar de rellenar el select con los datos(que ya están correctos) necesito ordenarlos y no se muy bien como hacerlo, ¿alguna idea?

1 Respuesta

Respuesta
1
Esto te ayudará mucho. Existe un método para los arrays que ordena según un criterio: sort()
Te daré un ejemplo:
<script language="JavaScript">
<!--
var miArray = new Array();
miArray[0] = "Ronaldo";
miArray[1] = "Hierro";
miArray[2] = "Alfonso";
miArray[3] = "Guardiola";
document.write("El array: ");
document.write(miArray.join() + "<br>");
miArray.sort();
document.write("Se puede ordenar y resulta: ");
document.write(miArray.join() + "<br>");
// -->
</script>
Esto da como resultado:
El array: Ronaldo,Hierro,Alfonso,Guardiola
Se puede ordenar y resulta: Alfonso,Guardiola,Hierro,Ronaldo
También puedes trabajar con números, ordena por cifras. La primera cifra de 0 a 9, después la segunda: 1,22,11,15 pero no de mayor a menor. Para eso tienes que hacer un criterio, lo comprenderás mejor en un ejemplo:
<!--
function criterioDeOrdenacion(a,b) {
return a - b;
}
var miArray = new Array();
miArray[0] = 3;
miArray[1] = 17;
miArray[2] = 0.004;
miArray[3] = 34;
document.write("El array " + miArray.join(", ") + "<br>");
miArray.sort();
document.write("Resulta ordenado alfabéticamente: <br>");
document.write(miArray.join(", ") + "<br>");
miArray.sort(criterioDeOrdenacion);
document.write("Resulta ordenado por otro criterio: <br>");
document.write(miArray.join(", ") + "<br>");
// -->
</script>
Este script da como resultado:
El array 3, 17, 0.004, 34
Resulta ordenado alfabéticamente:
0.004, 17, 3, 34
Resulta ordenado por otro criterio:
0.004, 3, 17, 34

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas