Junior
Rəqəmlər massivini necə sıralayardınız?
sobes.tech Süni İntellekt
AI-dan cavab
// Müqayisə funksiyası ilə sort() metodundan istifadə edirik
const numbers = [4, 2, 5, 1, 3];
numbers.sort((a, b) => a - b); // Artan sıralama
// Azalan sıralama üçün:
// numbers.sort((a, b) => b - a);
JavaScript-də sort() metodu, massiv elementlərini yerində sıralayır. Əsasən, elementləri simvollaşdırır və leksikografik olaraq sıralayır. Rəqəmləri düzgün sıralamaq üçün, sort()-a müqayisə funksiyası ötürmək lazımdır.
Müqayisə funksiyası iki arqument qəbul edir, a və b.
- Əgər funksiya mənfi ədəd qaytarırsa,
ab-dən əvvəl gələcək. - Əgər müsbət ədəd qaytarırsa,
ba-dan əvvəl gələcək. - Əgər 0 qaytarırsa, elementlərin sırası dəyişmir.
Rəqəmləri artan sırayla sıralamaq üçün (a, b) => a - b istifadə olunur. Əgər a b-dən kiçikdirsə, nəticə mənfidir və a əvvəl gəlir.
Azalan sıralama üçün (a, b) => b - a istifadə olunur. Əgər b a-dan kiçikdirsə, nəticə müsbətdir və b əvvəl gəlir.
Digər metodlar (daha az istifadə olunan, amma faydalı):
-
localeCompare()metodu ilə ədədi stringlərin müqayisəsi:// Təmiz ədədlər üçün tövsiyə edilmir, amma istifadə oluna bilər // ədədlər string kimi təqdim olunursa və lokalizasiya nəzərə alınmalıdırsa. const stringNumbers = ["10", "2", "1"]; stringNumbers.sort((a, b) => a.localeCompare(b, undefined, { numeric: true })); // [ "1", "2", "10" ] kimi sıralayacaq -
Sıralamadan əvvəl array-in nüsxəsini yaratmaq:
// Əsas array-i qorumaq istəyirsinizsə const originalNumbers = [4, 2, 5, 1, 3]; const sortedNumbers = [...originalNumbers].sort((a, b) => a - b); // və ya // const sortedNumbers = originalNumbers.slice().sort((a, b) => a - b);