Javascript как сделать сортировку

Узнайте, как использовать сортировку в Javascript, чтобы отсортировать коллекции данных. Подробное руководство с примерами кода поможет быстро освоить технику сортировки и применить ее в решении задач.

Сортировка массива в JavaScript

Сортировка массива - это довольно популярная задача, которую часто встречают в программировании. В JavaScript существует несколько методов, которые могут быть использованы для сортировки массива. Ниже приведены некоторые из них.

Метод sort()

Основная функция сортировки массива в JavaScript - это метод sort(). Этот метод может быть использован для сортировки массива в порядке возрастания или убывания. Например, для сортировки массива чисел в порядке возрастания можно использовать следующий код:


let arr = [6, 4, 9, 2, 8, 1];

arr.sort((a, b) => a - b);

console.log(arr);
// Выведет: [1, 2, 4, 6, 8, 9]

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


let arr = [6, 4, 9, 2, 8, 1];

arr.sort((a, b) => b - a);

console.log(arr);
// Выведет: [9, 8, 6, 4, 2, 1]

Метод reverse()

Если мы хотим отсортировать массив в обратном порядке, мы можем использовать метод reverse(). Этот метод просто инвертирует элементы массива, приводя их в обратном порядке. Например, для инвертирования массива чисел можно использовать следующий код:


let arr = [6, 4, 9, 2, 8, 1];

arr.reverse();

console.log(arr);
// Выведет: [1, 8, 2, 9, 4, 6]

Функция сортировки

Если мы хотим создать функцию сортировки для массива, мы можем использовать цикл for. Например, мы можем создать функцию sortArray(), которая будет сортировать массив целых чисел в порядке возрастания:


function sortArray(arr) {
  let min;
  let temp;
  
  for (let i = 0; i < arr.length; i++) {
    min = i;
    for (let j = i + 1; j < arr.length; j++) {
      if (arr[j] < arr[min]) {
        min = j;
      }
    }
    temp = arr[i];
    arr[i] = arr[min];
    arr[min] = temp;
  }
  return arr;
}

let arr = [6, 4, 9, 2, 8, 1];

console.log(sortArray(arr));
// Выведет: [1, 2, 4, 6, 8, 9]

В этом примере мы используем вложенный цикл for для поиска минимального числа в массиве. Каждый раз, когда мы находим минимальное число, мы меняем его местами с текущим элементом массива. Этот метод позволяет нам сортировать массив в порядке возрастания. Для сортировки массива в порядке убывания мы можем изменить условие функции следующим образом:


if (arr[j] > arr[min]) {
  min = j;
}

Это все, что нужно изменить, чтобы массив был отсортирован в порядке убывания.

Ответы (0)