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
sort
es bastante sencillo, ¿dónde tienes dificultades?Respuestas:
Puede usar el
Array.sort
mé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 here
fuente
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