Tengo una matriz como esta:
arr = []
arr[0] = "ab"
arr[1] = "abcdefgh"
arr[2] = "abcd"
Después de ordenar, la matriz de salida debe ser:
arr[0] = "abcdefgh"
arr[1] = "abcd"
arr[2] = "ab"
Quiero decir, quiero en orden descendente de la longitud de cada elemento.
javascript
arrays
string
sorting
ramesh kumar
fuente
fuente

sortes bastante sencillo, ¿dónde tienes dificultades?Respuestas:
Puede usar el
Array.sortmétodo para ordenar la matriz. Una función de clasificación que considera la longitud de la cadena como criterio de clasificación se puede utilizar de la siguiente manera:Nota:
["a", "b", "c"]no se garantiza el retorno de la clasificación por longitud de cadena["a", "b", "c"]. Según las especificaciones :Si el objetivo es ordenar por longitud, entonces por orden de diccionario debe especificar criterios adicionales:
fuente
arr.sort((a, b) => b.length - a.length)Podemos usar el método Array.sort para ordenar esta matriz.
Solución ES5
Solución ES6
Atención: no todos los navegadores pueden entender el código ES6.
En ES6 podemos usar expresiones de función de flecha .
fuente
Aquí está el tipo, dependiendo de la longitud de una cadena con javascript como preguntaste:
[la solución del problema por clasificación de burbujas] [1]
[1]: http://jsfiddle.net/sssonline2/vcme3/2/
enter code herefuente
Según la respuesta de Salman, escribí una pequeña función para encapsularlo:
entonces solo llámalo con
Tenga en cuenta que, desafortunadamente, las funciones no pueden / no deben agregarse al prototipo Array, como se explica en esta página .
Además, modificó la matriz pasada como parámetro y no devuelve nada. Esto forzaría la duplicación de la matriz y no sería bueno para matrices grandes. Si alguien tiene una idea mejor, ¡por favor comente!
fuente
Adapté la respuesta de @ shareef para que fuera concisa. Yo suelo,
.sort(function(arg1, arg2) { return arg1.length - arg2.length })fuente
fuente
Este código debería hacer el truco:
fuente
La función anónima que pasa para ordenar le dice cómo ordenar la matriz dada. Espero que esto ayude. Sé que esto es confuso, pero puede decirle a la función de ordenación cómo ordenar los elementos de la matriz pasándole una función como parámetro que dice es que hacer
fuente