Estoy tratando de comparar 2 cadenas alfabéticamente para fines de clasificación. Por ejemplo, quiero tener una verificación booleana como if('aaaa' < 'ab')
. Lo intenté, pero no me da los resultados correctos, así que supongo que no es la sintaxis correcta. ¿Cómo hago esto en jquery o Javascript?
javascript
jquery
mismo viejo
fuente
fuente
'aaaa' < 'ab'
regresatrue
. <! - edición falsa para eliminar el voto ->Respuestas:
Veamos algunos casos de prueba: intente ejecutar las siguientes expresiones en su consola JS:
Todos vuelven verdaderos.
JavaScript compara cadenas carácter por carácter y "a" viene antes de "b" en el alfabeto, por lo tanto, menos que.
En tu caso funciona así:
compara los dos primeros caracteres "a" - todos iguales, pasemos al siguiente carácter.
compara los segundos caracteres "a" con "b" - ¡whoop! "a" viene antes que "b". Devuelve verdadero.
fuente
"a" < "b" === true
"a" < "B" === false
.Dice que la comparación es para fines de clasificación. Entonces sugiero en su lugar:
Vuelve
-1
desde"a" < "b"
,1
o de lo0
contrario, como lo necesita para Array.prototype.sort ()Tenga en cuenta que la clasificación depende de la configuración regional. Por ejemplo, en alemán,
ä
es una variante dea
, por lo que"ä".localeCompare("b", "de-DE")
vuelve-1
. En sueco,ä
es una de las últimas letras del alfabeto, por lo que"ä".localeCompare("b", "se-SE")
vuelve1
.Sin el segundo parámetro
localeCompare
, se utiliza la configuración regional del navegador. Lo que en mi experiencia nunca es lo que quiero, porque entonces se clasificará de manera diferente al servidor, que tiene una configuración regional fija para todos los usuarios.fuente
"aa".localeCompare("ab")
== "aa" .localeCompare ("Ab") para cualquier configuración regional que se me ocurra) y funciona incluso en versiones antiguas de IE. ¡Debería ser la respuesta aceptada!Solo recuerde que la comparación de cadenas como "x"> "X" distingue entre mayúsculas y minúsculas
Puede utilizar
.toLowerCase()
para comparar sin distinción entre mayúsculas y minúsculas.fuente
"a".localeCompare("b")
debería volver-1
ya quea
ordena antesb
http://www.w3schools.com/jsref/jsref_localecompare.asp
fuente
Digamos que tenemos una matriz de objetos:
entonces podemos ordenar nuestra matriz de la siguiente manera:
Nota: tenga cuidado con las letras mayúsculas, es posible que deba convertir su cadena en minúsculas debido a su propósito.
fuente