.toSorted()

Сортирует элементы массива так же, как и метод sort(), но возвращает новый массив.

Время чтения: меньше 5 мин

Кратко

Скопировано

Метод массива toSorted() это копия метода sort(), но, в отличие от него, не мутирует исходный массив, а возвращает новый отсортированный массив. Все undefined элементы сортируются в конец массива.

Пример

Скопировано

Отсортируем массив с числами:

        
          
          const numbers = [43, 6, 35, 1, 9, 7, 5, 75, 16];const sortedNumbers = numbers.toSorted((a, b) => a - b);console.log(numbers);// [43, 6, 35, 1, 9, 7, 5, 75, 16];console.log(sortedNumbers);// [1, 5, 6, 7, 9, 16, 35, 43, 75]
          const numbers = [43, 6, 35, 1, 9, 7, 5, 75, 16];

const sortedNumbers = numbers.toSorted((a, b) => a - b);

console.log(numbers);
// [43, 6, 35, 1, 9, 7, 5, 75, 16];
console.log(sortedNumbers);
// [1, 5, 6, 7, 9, 16, 35, 43, 75]

        
        
          
        
      

Отсортируем массив с именами:

        
          
          const names = [  'Kirill',  'Alex',  'Denis',  'Albert',  undefined,  '',];const sortedNames = names.toSorted();console.log(sortedNames)// ['', 'Albert', 'Alex', 'Denis', 'Kirill', undefined]// undefined элементы будут в конце массива.
          const names = [
  'Kirill',
  'Alex',
  'Denis',
  'Albert',
  undefined,
  '',
];

const sortedNames = names.toSorted();
console.log(sortedNames)
// ['', 'Albert', 'Alex', 'Denis', 'Kirill', undefined]
// undefined элементы будут в конце массива.

        
        
          
        
      

Как пишется

Скопировано

Array.toSorted, также как и Array.sort, может принимать в качестве аргумента функцию-компаратор: специальную функцию, определяющую порядок сортировки. Это необязательный параметр. Если функция пропущена, элементы массива конвертируются в строки и сортируются в порядке следования символов Unicode.

Как понять

Скопировано

Метод toSorted() имеет те же аргументы и работает также, как метод sort(), но отличается тем, что возвращает новый массив, а не мутирует исходный.

Использование аргумента функции-компаратора позволяет определить порядок сортировки.

Подсказки

Скопировано

💡 Если нет возможности использовать метод toSorted(), можно воспользоваться следующим кодом:

        
          
          const numbers = [43, 6, 35, 1, 9, 7, 5, 75, 16];const sortedNumbers = [...numbers].sort((a, b) => a - b);// используем spread операторconsole.log(numbers);// [43, 6, 35, 1, 9, 7, 5, 75, 16];console.log(sortedNumbers);// [1, 5, 6, 7, 9, 16, 35, 43, 75]
          const numbers = [43, 6, 35, 1, 9, 7, 5, 75, 16];

const sortedNumbers = [...numbers].sort((a, b) => a - b);
// используем spread оператор

console.log(numbers);
// [43, 6, 35, 1, 9, 7, 5, 75, 16];
console.log(sortedNumbers);
// [1, 5, 6, 7, 9, 16, 35, 43, 75]