Сортировка массива в JavaScript: руководство для начинающих

Сортировка массива в JavaScript: руководство для начинающих

28 февраля 2023 г.

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

Отличный способ быстро изменить порядок данных — использовать метод Array sort().

Независимо от того, новичок вы или профессиональный программист, важно понимать, как функция Array sort() работает в JavaScript.

В этом руководстве мы дадим вам подробный обзор того, что делает функция sort() и как она может помочь вам быстро и легко упорядочить данные.

Мы рассмотрим такие темы, как сортировка массивов строк, чисел и объектов, а также обсудить различные типы доступных алгоритмов сортировки и когда их использовать.

Итак, давайте начнем наше путешествие в мир JavaScript sort()!

Обзор сортировки массива Javascript()

Вы ищете способ сортировки массива в Javascript? Метод Javascript sort() может стать отличным инструментом для организации ваших данных, чтобы вы могли быстро и легко вносить в них изменения.

Это руководство предоставит вам обзор метода sort() массива Javascript и того, как он может помочь вам организовать ваши данные.

Используя метод sort(), вы можете взять массив объектов и переставить их в алфавитном, численном или соответствии с любыми пользовательскими критериями.

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

Объект параметров позволяет указать способ сортировки массива — например, по возрастанию или по убыванию, — а функция сравнения позволяет определить пользовательскую логику сортировки.

Проще говоря, метод массива Javascript sort() — это невероятно мощный инструмент, который упрощает организацию данных и управление ими практически любым мыслимым способом.

Написав всего несколько строк кода, вы сможете легко и быстро приступить к сортировке массивов.

Поэтому, если вы ищете эффективный способ управления данными, вам стоит попробовать метод Javascript sort()!

Рекомендации по сортировке массивов Javascript

Если вы готовы начать сортировку своих массивов JavaScript< /a> следует помнить несколько рекомендаций. Каждая ситуация уникальна, и ваш код будет зависеть от значений, с которыми вы работаете, и результата, которого вы пытаетесь достичь.

Однако вот несколько рекомендаций по работе с массивом Javascript sort(), которые помогут вам начать работу:

* Перед сортировкой обязательно просмотрите массив:

Важно перепроверить все перед запуском sort(). Таким образом, вы можете убедиться, что нет повторяющихся значений, недопустимые типы данных или пустые строки, которые потенциально могут привести к сбою процесса sort().

* Понимать различные методы сортировки:

Что касается сортировки массива javascript(), существует несколько различных методов, доступных для использования в зависимости от ваших потребностей. Некоторые из наиболее популярных опций включают sort(), reverse(), splice() и slice(). .

* Рассмотрите возможность использования функции обратного вызова:

Функции обратного вызова могут быть невероятно полезны при использовании массива javascript sort(). Эти функции позволяют определить пользовательские критерии сортировки при сортировке сложных объектов или массивов с несколькими значениями.

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

Как сортировать массивы Javascript с помощью Sort()

Чтобы использовать метод sort(), передайте функцию, определяющую шаблон для сортировки объектов в массиве. Это может быть как простая сортировка строк в алфавитном порядке, так и сложная сортировка массивов объектов по определенному атрибуту.

Например, если вы хотите отсортировать массив объектов по имени пользователя, вы можете использовать:

array.sort((a, b) => {
    const nameA = a.userName.toUpperCase();
    const nameB = b.userName.toUpperCase();

    if (nameA < nameB) {
        return -1;
    }

    if (nameA > nameB) {
        return 1;
    }

    return 0;
});

Как сортировать числа в массиве с помощью Sort()

Можно также использовать метод sort() для сортировки массива чисел по возрастанию или убыванию.

Чтобы отсортировать массив в порядке возрастания, вам нужно будет передать функцию в качестве аргумента, которая сообщает sort(), как сравнивать два элемента в массиве.

Обычный способ сделать это — использовать пользовательскую функцию, которая принимает два параметра, a и b, и выполняет сравнение между ними. Вы можете использовать тег > (больше) или < (меньше чем), чтобы определить, в каком порядке должны располагаться элементы.

Если вы хотите, чтобы массив был отсортирован в порядке возрастания, вы должны вернуть значение больше 0, если a > b и меньше 0, если a < б.

Как сортировать числа с помощью Sort()

Вот пример сортировки массива чисел:

    let numbers = [9, 10, 3, 4];
    numbers.sort(function (a, b) {
    return a - b;
  });

// Example
console.log(numbers); // Logs [3, 4, 9, 10]

Код сначала создает массив с именем «numbers» с четырьмя элементами внутри, а затем использует метод sort() для этого массива.

Мы передаем пользовательскую функцию в качестве параметра, который принимает два параметра «a» и «b» и выполняет сравнение между ними с помощью оператора «меньше» ( < ), который возвращает true, если «a» меньше, чем «b», в противном случае — false. .

Значения, возвращаемые нашей пользовательской функцией, определяют, в каком порядке

Как отсортировать массив объектов с помощью Sort()

Чтобы отсортировать массив объектов в JavaScript, вы можете использовать метод массива sort() и передать функцию сравнения в качестве аргумента.

Функция сравнения должна принимать два объекта из массива в качестве аргументов и возвращать отрицательное число, 0 или положительное число в зависимости от того, должен ли первый объект стоять перед, равным или после второго объекта в отсортированном массиве.

const students = [
  { name: 'Alice', grade: 90 },
  { name: 'Bob', grade: 80 },
  { name: 'Charlie', grade: 95 },
  { name: 'David', grade: 85 }
];

students.sort((student1, student2) => student2.grade - student1.grade);

console.log(students);
// Output: [
//   { name: 'Charlie', grade: 95 },
//   { name: 'Alice', grade: 90 },
//   { name: 'David', grade: 85 },
//   { name: 'Bob', grade: 80 }
// ]

В этом примере у нас есть массив объектов, представляющих учащихся с их именами и оценками.

Мы хотим отсортировать массив в порядке убывания оценок, поэтому мы передаем функцию сравнения в sort(), которая берет двух учеников и вычитает их оценки (student2.grade - student1.grade).

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

Если результат положительный, это означает, что второй ученик имеет более высокий балл и должен прийти раньше первого ученика.

Если результат равен нулю, это означает, что у учащихся одинаковые оценки, и их порядок не имеет значения.

Как отсортировать массив строк с помощью Sort()

По умолчанию sort() сортирует элементы массива в порядке возрастания на основе их Значения Юникода. Это означает, что прописные буквы идут перед строчными, а цифры — перед буквами.

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

const fruits = ['banana', 'apple', 'orange', 'pineapple'];
fruits.sort(); // ['apple', 'banana', 'orange', 'pineapple']

console.log(fruits);

В этом примере массив fruits сортируется в порядке возрастания на основе метода сортировки по умолчанию.

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

const fruits = ['banana', 'apple', 'orange', 'pineapple'];
fruits.sort((a, b) => b.localeCompare(a)); // ['pineapple', 'orange', 'banana', 'apple']

console.log(fruits);

В этом примере метод sort() вызывается с пользовательской функцией сортировки, которая использует метод localeCompare() для сравнения двух строк.

Метод localeCompare() возвращает отрицательное значение, если a должен стоять перед b, и положительное значение, если a должен стоять перед b. идут после b и 0, если a и b равны.

Поменяв местами a и b порядок, мы можем отсортировать массив в порядке убывания.


Различные методы сортировки в Javascript

Если вы только начинаете использовать функцию сортировки массива JavaScript, вы можете узнать о различных доступных методах сортировки. Существуют различные виды алгоритмов сортировки, и каждый из них предлагает что-то в зависимости от того, чего вы пытаетесь достичь.

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

Пузырьковая сортировка

Пузырьковая сортировка — один из самых простых алгоритмов сортировки, доступных в JavaScript. Это алгоритм, который сравнивает два соседних элемента в массиве, а затем меняет их местами, если порядок неправильный.

Этот алгоритм хорош для небольших наборов данных, но не рекомендуется для больших, поскольку он очень медленный.

function bubbleSort(arr) {
  var len = arr.length;
  for (var i = 0; i < len - 1; i++) {
    for (var j = 0; j < len - 1 - i; j++) {
      if (arr[j] > arr[j + 1]) {
        var temp = arr[j];
        arr[j] = arr[j + 1];
        arr[j + 1] = temp;
      }
    }
  }
  return arr;
}

// Example 
var myArray = [5, 3, 1, 4, 2];
var sortedArray = bubbleSort(myArray);
console.log(sortedArray); // [1, 2, 3, 4, 5]

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

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

Кроме того, его относительно легко понять, что делает его отличным вариантом для начинающих.

function insertionSort(arr) {
  for (let i = 1; i < arr.length; i++) {
    let current = arr[i];
    let j = i - 1;
    while (j >= 0 && arr[j] > current) {
      arr[j + 1] = arr[j];
      j--;
    }
    arr[j + 1] = current;
  }
  return arr;
}

// Example
const arr = [5, 1, 3, 6, 4, 2];
console.log(insertionSort(arr)); // [1, 2, 3, 4, 5, 6]

Сортировка выбором

Сортировка выбором работает путем выбора наименьшего элемента из несортированного массива и помещения его в правильное положение в массиве.

Для этого он перебирает массив, находит наименьший элемент и заменяет его текущей позицией до тех пор, пока все элементы не будут отсортированы правильно.

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

function selectionSort(arr) {
  for (let i = 0; i < arr.length - 1; i++) {
    let minIndex = i;
    for (let j = i + 1; j < arr.length; j++) {
      if (arr[j] < arr[minIndex]) {
        minIndex = j;
      }
    }
    if (minIndex !== i) {
      let temp = arr[i];
      arr[i] = arr[minIndex];
      arr[minIndex] = temp;
    }
  }
  return arr;
}

// Example
const arr = [5, 3, 6, 2, 7];
const sortedArr = selectionSort(arr);
console.log(sortedArr); // [2, 3, 5, 6, 7]

Сортировка слиянием

Сортировка слиянием — это мощный алгоритм сортировки, который можно использовать для быстрой и эффективной сортировки больших наборов данных.

Он работает путем разбиения массива на отдельные подмассивы, сортировки каждого из них, а затем их объединения в правильном порядке.

Это рекурсивный алгоритм, то есть он вызывает себя несколько раз, каждый раз вводя меньшие объемы данных, поэтому он может работать довольно медленно при работе с большими данными.

Сортировка слиянием довольно проста для понимания и обеспечивает отличный баланс между производительностью и эффективностью.

Подробнее о сортировке слиянием -> https://stackabuse.com/merge-sort-in-javascript/

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


Заключение

Короче говоря, метод Javascript sort() — невероятно полезный способ организации массива, независимо от того, сортируете ли вы числа, строки или объекты.

Процесс сортировки действительно прост в реализации и понимании, но важно иметь общее представление о функции, чтобы вы могли извлечь из нее максимальную пользу.

Существует множество вариантов и настроек сортировки массивов в JavaScript, поэтому не забудьте воспользоваться всеми преимуществами, которые он может предложить.

Итак, теперь, когда вы знаете основы, возможно, самого важного метода во всем JavaScript, вы готовы создавать мощные и эффективные веб-сайты и приложения.

Спешите!


Подробнее о JavaScript


Оригинал