Изучение функции сортировки в JavaScript: сортировка массивов разными способами

Функция сортировки в JavaScript используется для упорядочения элементов массива в определенном порядке. Его можно использовать для сортировки строк, чисел и даже сложных объектов по различным критериям. Вот объяснение функции сортировки в JavaScript и некоторых распространенных методов, связанных с ней:

  1. Основное использование:
    Функция sort вызывается для массива и сортирует его элементы на месте, то есть изменяет исходный массив. По умолчанию сортировка выполняется на основе значений точек Юникода, что приводит к лексикографической (словарной) сортировке строк.

    Пример:

    const fruits = ['banana', 'apple', 'pear', 'orange'];
    fruits.sort();
    console.log(fruits); // Output: ['apple', 'banana', 'orange', 'pear']
  2. Сортировка чисел.
    По умолчанию функция сортировки преобразует элементы в строки и соответствующим образом сортирует их, что может не дать желаемых результатов для чисел. Для правильной сортировки чисел в качестве аргумента функции sort необходимо предоставить функцию сравнения.

    Пример:

    const numbers = [10, 5, 8, 2, 3];
    numbers.sort((a, b) => a - b);
    console.log(numbers); // Output: [2, 3, 5, 8, 10]
  3. Сортировка объектов:
    Функция «сортировка» также может использоваться для сортировки массивов объектов. Подобно сортировке чисел, для указания критериев сортировки необходимо предоставить функцию сравнения.

    Пример:

    const students = [
     { name: 'Alice', age: 20 },
     { name: 'Bob', age: 18 },
     { name: 'Charlie', age: 22 }
    ];
    students.sort((a, b) => a.age - b.age);
    console.log(students);
    // Output: [
    //   { name: 'Bob', age: 18 },
    //   { name: 'Alice', age: 20 },
    //   { name: 'Charlie', age: 22 }
    // ]
  4. Изменение порядка:
    Чтобы отсортировать массив в порядке убывания, вы можете изменить функцию сравнения, чтобы поменять порядок сравниваемых элементов.

    Пример:

    const numbers = [10, 5, 8, 2, 3];
    numbers.sort((a, b) => b - a);
    console.log(numbers); // Output: [10, 8, 5, 3, 2]