viernes, 14 de noviembre de 2014

Ordenar array UTF-8 con Javascript

Ordenar arrays con Javascript es una función muy habitual que ejecutamos los programadores web. Sin embargo, existen ocasiones en que lo que queremos ordenar lleva tildes, eñes o cualquier grafía de otro alfabeto.

Cuando ocurre esto, el método habitual de ordenación sort() no sirve ya que nos los ordena en último lugar. Veamos un ejemplo:

var myarray = ['Álex', 'Juan', 'José', 'Antonio', 'Carlos'];
myarray.sort(); // Queda ordenado como Antonio, Carlos, José, Juan, Álex


Para este tipo de caracteres necesitamos una función específica para ordenar, que podría convertirse en nuestro método sort() si nuestro alfabeto habitual lleva caracteres Unicode. Para realizar la ordenación UTF-8 tenemos que hacer lo siguiente:

var myarray = ['Álex', 'Juan', 'José', 'Antonio', 'Carlos'];
myarray.sort(function(a,b){return a.localeCompare(b);}); // Queda ordenado como Álex, Antonio, Carlos, José, Juan


No hay comentarios:

Publicar un comentario