Сортировка массива в JavaScript: руководство для начинающих
28 февраля 2023 г.Если вам когда-либо нужно было привести что-то в порядок, первая мысль, которая приходит на ум, часто бывает: "Давайте разберемся с этим!" И с JavaScript это мнение остается верным.
Отличный способ быстро изменить порядок данных — использовать метод Array sort().
Независимо от того, новичок вы или профессиональный программист, важно понимать, как функция Array sort()
работает в JavaScript.
В этом руководстве мы дадим вам подробный обзор того, что делает функция sort()
и как она может помочь вам быстро и легко упорядочить данные.
Мы рассмотрим такие темы, как сортировка массивов strong> строк, чисел и объектов, а также обсудить различные типы доступных алгоритмов сортировки и когда их использовать.
Итак, давайте начнем наше путешествие в мир 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
Оригинал