Junior
Чӣ тавр шумо массиви рақамҳоро сорт мекунед?
sobes.tech AI
Ҷавоб аз AI
// Методи sort() с функция за сравнение
const numbers = [4, 2, 5, 1, 3];
numbers.sort((a, b) => a - b); // Растящ ред
// За намаляващ ред:
// numbers.sort((a, b) => b - a);
Методът sort() в JavaScript сортира елементите на масива на място. По подразбиране, той преобразува елементите в низове и ги сортира лексикографски. За правилно сортиране на числа, трябва да му подадете функция за сравнение.
Функцията за сравнение приема два аргумента, a и b.
- Ако функцията връща отрицателно число,
aще бъде предиb. - Ако връща положително число,
bще бъде предиa. - Ако връща 0, редът на елементите не се променя.
За сортиране на числа във възходящ ред се използва (a, b) => a - b. Ако a е по-малко от b, резултатът е отрицателен и a идва преди.
За намаляващ ред се използва (a, b) => b - a. Ако b е по-малко от a, резултатът е положителен и b идва преди.
Други методи (по-редки за прости числови масиви, но полезни):
-
localeCompare()за низове с числа:// Не се препоръчва за чисти числа, но може да се използва // ако числата са представени като низове и трябва да се вземе предвид локалът. const stringNumbers = ["10", "2", "1"]; stringNumbers.sort((a, b) => a.localeCompare(b, undefined, { numeric: true })); // Ще сортира като [ "1", "2", "10" ] -
Създаване на копие на масива преди сортиране:
// Ако искате да запазите оригиналния масив const originalNumbers = [4, 2, 5, 1, 3]; const sortedNumbers = [...originalNumbers].sort((a, b) => a - b); // или // const sortedNumbers = originalNumbers.slice().sort((a, b) => a - b);