Método JavaScript Array sort() – Part 1

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).

Publicación traducida automáticamente

Artículo escrito por HGaur y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *