10 основных методов сортировки массивов в JavaScript: подробное руководство

Сортировка массивов — распространенная задача в программировании на JavaScript. В этой статье мы рассмотрим различные методы сортировки массивов в JavaScript. Если вам нужно отсортировать строки, числа или объекты, мы вам поможем. Давайте погрузимся!

  1. Array.prototype.sort()
    Метод sort() — это встроенный метод JavaScript, который сортирует элементы массива на месте и возвращает отсортированный массив. По умолчанию он сортирует элементы как строки на основе их значений в Юникоде. Для сортировки чисел вы можете предоставить функцию сравнения.
const fruits = ['apple', 'banana', 'cherry', 'date'];
fruits.sort();
console.log(fruits); // Output: ['apple', 'banana', 'cherry', 'date']
  1. Array.prototype.reverse()
    Метод reverse()меняет порядок элементов в массиве. Он изменяет исходный массив и возвращает обратный массив.
const numbers = [1, 2, 3, 4, 5];
numbers.reverse();
console.log(numbers); // Output: [5, 4, 3, 2, 1]
  1. Сортировка чисел
    Чтобы сортировать числа в порядке возрастания, вы можете использовать функцию сравнения внутри метода sort().
const numbers = [4, 2, 1, 5, 3];
numbers.sort((a, b) => a - b);
console.log(numbers); // Output: [1, 2, 3, 4, 5]

<старый старт="4">

  • Сортировка строк
    По умолчанию метод sort()сортирует строки на основе их значений в Юникоде. Чтобы сортировать строки без учета регистра, вы можете использовать метод localeCompare().
  • const names = ['John', 'Alice', 'bob', 'Eve'];
    names.sort((a, b) => a.localeCompare(b, 'en', { sensitivity: 'base' }));
    console.log(names); // Output: ['Alice', 'bob', 'Eve', 'John']
    1. Сортировка объектов по свойству
      Чтобы отсортировать массив объектов по определенному свойству, вы можете использовать метод sort()с функцией сравнения, которая сравнивает нужное свойство.
    const people = [
      { name: 'Alice', age: 25 },
      { name: 'Bob', age: 30 },
      { name: 'Eve', age: 20 }
    ];
    people.sort((a, b) => a.age - b.age);
    console.log(people);
    // Output: [
    //   { name: 'Eve', age: 20 },
    //   { name: 'Alice', age: 25 },
    //   { name: 'Bob', age: 30 }
    // ]
    1. Сортировка объектов по нескольким свойствам
      Вы можете сортировать объекты по нескольким свойствам, объединив несколько функций сравнения внутри метода sort().
    const products = [
      { name: 'Apple', price: 2.5, quantity: 10 },
      { name: 'Banana', price: 1.5, quantity: 20 },
      { name: 'Cherry', price: 3.0, quantity: 5 }
    ];
    products.sort((a, b) => a.price - b.price || b.quantity - a.quantity);
    console.log(products);
    // Output: [
    //   { name: 'Banana', price: 1.5, quantity: 20 },
    //   { name: 'Apple', price: 2.5, quantity: 10 },
    //   { name: 'Cherry', price: 3.0, quantity: 5 }
    // ]
    1. Сортировка с помощью пользовательского компаратора
      Вы можете определить собственную функцию компаратора для реализации сложной логики сортировки.
    const numbers = [10, 2, 30, 4, 50];
    numbers.sort((a, b) => {
      if (a % 10 === b % 10) {
        return a - b;
      }
      return a % 10 - b % 10;
    });
    console.log(numbers); // Output: [50, 30, 10, 2, 4]
    1. Сортировка с помощью Intl.Collator
      Объект Intl.Collatorобеспечивает сравнение строк с учетом языка. Его можно использовать для сортировки строк на основе правил, специфичных для локали.
    const names = ['John', 'Alice', 'bob', 'Ève'];
    const collator = new Intl.Collator('en', { sensitivity: 'base' });
    names.sort(collator.compare);
    console.log(names); // Output: ['Alice', 'bob', 'Ève', 'John']
    1. Сортировка дат
      Чтобы отсортировать массив дат, вы можете использовать метод sort()с функцией сравнения, которая сравнивает объекты Date.
    const dates = [new Date('2022-05-01'), new Date('2023-01-01'), new Date('2021-12-31')];
    dates.sort((a, b) => a - b);
    console.log(dates);
    // Output: [
    //   '2021-12-31T00:00:00.000Z',
    //   '2022-05-01T00:00:00.000Z',
    //   '2023-01-01T00:00:00.000Z'
    // ]
    1. Сортировка с помощью внешних библиотек
      JavaScript предоставляет различные внешние библиотеки, такие как Lodash и Underscore.js, которые предлагают дополнительные методы и утилиты сортировки. Вы можете изучить эти библиотеки, чтобы найти более продвинутые параметры сортировки.

    Сортировка массивов в JavaScript — фундаментальная операция во многих приложениях. В этой статье были рассмотрены десять основных методов сортировки массивов в JavaScript, включая сортировку чисел, строк, объектов и дат. Освоив эти методы, вы сможете эффективно сортировать массивы в соответствии с вашими конкретными требованиями. Приятного кодирования!