A continuación se muestra el ejemplo del método Array sort() .
- Programa 1:
JavaScript
<script> // JavaScript to illustrate sort() function function func() { // Original string var arr = ["Geeks", "for", "Geeks"] document.write(arr); document.write("<br>"); // Sorting the array document.write(arr.sort()); } func(); </script>
- Producción:
Geeks,for,Geeks Geeks,Geeks,for
El método arr.sort() se usa para ordenar la array en un lugar determinado de acuerdo con la función compare() . Si se omite el método, la array se ordena en orden ascendente . Sintaxis:
arr.sort(compareFunction)
Parámetros: este método acepta un solo parámetro como se mencionó anteriormente y se describe a continuación:
- compareFunction: este parámetro se utiliza para ordenar los elementos según diferentes atributos y en un orden diferente.
- compararFunción(a,b) < 0
- compararFunción(a,b) > 0
- compararFuncion(a,b) = 0
Valor devuelto: este método devuelve la referencia de la array original ordenada. Los siguientes ejemplos ilustran el método JavaScript Array sort():
- Ejemplo 1: En este ejemplo, el método sort() organiza los elementos de la array en orden ascendente.
var arr = [2, 5, 8, 1, 4] document.write(arr.sort()); document.write(arr);
- Producción:
1,2,4,5,8 1,2,4,5,8
- Ejemplo 2: En este ejemplo, el método sort() los elementos de la array se ordenan según la función aplicada en cada elemento.
var arr = [2, 5, 8, 1, 4] document.write(arr.sort(function(a, b) { return a + 2 * b; })); document.write(arr);
- Producción:
2,5,8,1,4 2,5,8,1,4
- Ejemplo 3 : En este ejemplo, usamos el método sort() en la array de números y observamos un comportamiento inesperado.
let numbers = [20,5.2,-120,100,30,0] console.log(numbers.sort())
- Producción:
-120,0,100,20,30,5.2
Nuestra salida debería ser -120, 0, 5.2, 20, 30, 100 pero no es así, ¿por qué? Porque a medida que aplicamos directamente el método sort(), se procesaría en consecuencia: 100 se colocaría antes de 20, ya que ‘2’ es mayor que ‘1’ y de manera similar en el caso de 30 y 5.2, ya que ‘5’ es mayor que ‘3 ‘ por lo tanto, 30 se colocaría antes de 5.2. Podemos resolver este error inesperado usando el método sort() para números utilizando la siguiente función de comparación:
let numbers = [20,5.2,-120,100,30,0]; /* Logic: 20 - (5.2) = +ve => 5.2 would be placed before 20, 20 - (-120) = +ve => -120 would be placed before 20, 20 - (100) = -ve => 100 would be placed after 20, 20 - (30) = -ve => 30 would be placed after 20, 20 - (0) = +ve => 0 would be placed before 20, Similarly for every element, we check and place them accordingly in iterations. */ function compare(a,b){ return a-b; } console.log(numbers.sort(compare));
- Producción:
-120,0,5.2,20,30,100
El código para el método anterior se proporciona a continuación:
Programa 1:
JavaScript
<script> // JavaScript to illustrate sort() function function func() { //Original string var arr = [2, 5, 8, 1, 4] //Sorting the array document.write(arr.sort()); document.write("<br>"); document.write(arr); } func(); </script>
Producción:
1,2,4,5,8 1,2,4,5,8
Programa 2:
JavaScript
<script> // JavaScript to illustrate sort() function function func() { // Original array var arr = [2, 5, 8, 1, 4]; document.write(arr.sort(function(a, b) { return a + 2 * b; })); document.write("<br>"); document.write(arr); } func(); </script>
Producción:
4,1,8,5,2 4,1,8,5,2
Navegadores compatibles: los navegadores compatibles con el método JavaScript Array sort() se enumeran a continuación:
- Google Chrome 1 y superior
- Borde 12 y superior
- Firefox 1 y superior
- Internet Explorer 5.5 y superior
- Ópera 4 y superior
- Safari 1 y superior
Complejidad de tiempo: La complejidad de tiempo del método sort() varía y depende de la implementación.
Por ejemplo, en el navegador web Firefox, utiliza la implementación de clasificación por combinación que otorga complejidad de tiempo como O (nlog n). Mientras que, en el navegador web Google Chrome, utiliza la implementación de Timsort (un híbrido de clasificación por fusión y clasificación por inserción), la complejidad del tiempo es O (nlogn).