Если вы имеете дело с массивами данных, то всегда лучше иметь данные в отсортированном виде. Метод JavaScript sort()
сортирует элементы в массиве в алфавитном или числовом порядке.
const cars = ['BMW', 'Jaguar', 'Audi', 'Tesla', 'Ferrari']; console.log(cars.sort()); // ["Audi", "BMW", "Ferrari", "Jaguar", "Tesla"]
Метод sort()
выполняет сортировку по умолчанию на основе алфавитного или числового порядка.
Для чисел метод sort() сортирует значения как строки. Если числа отсортированы как строки, это приведет к неверным результатам, например, «8» больше, чем «55», поскольку «8» больше, чем «5», а «-52» больше, чем «-206» как «5». больше, чем «2».
const numbers = [50, -22, 8, -12, 30]; numbers.sort(); console.log(numbers); // [-12, -22, 30, 50, 8]
Здесь вы можете видеть, что «-22» больше, чем «-12», так как «2» больше, чем «1», а «8» больше, чем «50», так как «8» больше, чем «5», и, таким образом, все являются неверными результатами. Вскоре мы увидим, как исправить эту проблему сортировки и предоставить правильные результаты.
Иногда нам может понадобиться отсортировать массив по какому-то параметру или какому-то условию. Метод sort()
массива принимает функцию обратного вызова, называемую функция сравнения, где вы можете определить свою логику сравнения.
Функция сравнения принимает два параметра и выполняет функцию сравнения для каждых двух элементов в массиве. Вы можете использовать эти два элемента и провести сравнение. Функция сравнения возвращает три возможных значения, то есть положительное, нулевое или отрицательное.
- Если функция сравнения возвращает отрицательное значение, первый элемент меньше второго.
- Если он возвращает ноль, оба элемента равны.
- Если он возвращает положительное значение, первый элемент больше второго.
const numbers = [50, -22, 8, -12, 30]; numbers.sort((item1, item2) => { return item1 > item2 ? 1 : -1; }); console.log(numbers); // [-22, -12, 8, 30, 50]
Сортировка массива, содержащего объекты
const students = [ {name: 'Amitav', id: 32}, {name: 'Ranjit', id: 19}, {name: 'Rohit', id: 43}, {name: 'Suraj', id: 15} ]; students.sort((obj1, obj2) => { return obj1.id > obj2.id ? 1 : -1; }); console.log(students);
Вывод:
[ {name: 'Suraj', id: 15}, {name: 'Ranjit', id: 19}, {name: 'Amitav', id: 32}, {name: 'Rohit', id: 43}, ]
Теперь вы можете определить свой собственный метод сортировки на основе объекта, который вы хотите отсортировать.
Связанный
6 способов добавления элементов в массив
5 способов удаления элементов из массива
6 способов поиска элементов в массиве
Спасибо, что уделили время☺️
Другие блоги по веб-разработке можно найти на jscurious.com.