Yapay Gezegen

JavaScript Array Metodları:
sort() & toSorted()

sort() Metodu

sort: dizi elemanlarını, Unicode değerlerine göre küçükten büyüğe doğru sıralar. Dizi kendisi üzerinde değişiklik yapmaktadır.

let rakamlar = [5,2,0,4,1,9,7]

rakamlar.sort() // [0, 1, 2, 4, 5, 7, 9]

let isimler = ["Yeliz","Gürkan","Murat","Burak","Ebru"]

isimler.sort() // [Burak", "Ebru", "Gürkan", "Murat", "Yeliz"]

sort metodu ile sayıları sıralamak istediğimizde hatalı sonuçlar alırız. Bu durumu düzeltmek için: sort metoduna karşılaştırma fonksiyonu (comparison function) eklenmelidir. Küçükten büyüğe doğru sıralamak için: a - b, büyükten küçüğe doğru sıralamak için: b - a olarak return edilmelidir.

let sayilar1 = [120,195,17,23,5,2,47,11,54]

sayilar1.sort() // [11, 120, 17, 195, 2, 23, 47, 5, 54] -> hatalı sıralama
sayilar1.sort((a, b) => a - b)

sayilar1 // [2, 5, 11, 17, 23, 47, 54, 120, 195]
sayilar1.sort((a, b) => b - a)

sayilar1 // [195, 120, 54, 47, 23, 17, 11, 5, 2]

toSorted() Metodu

toSorted: dizi elemanlarını, Unicode değerlerine göre küçükten büyüğe doğru sıralar. sort metodundan farklı olarak: dizinin kendisi üzerinde değişiklik yapmaz. Sonuçlar bir değişkene atanarak kullanılabilir.

let sayilar2 = [8,2,1,7,9,0,3]

let sayilar3 = sayilar2.toSorted()

sayilar2 // [8, 2, 1, 7, 9, 0, 3]

sayilar3 // [0, 1, 2, 3, 7, 8, 9]

toSorted metodu sayısal ifadeler için: sorted metodunda olduğu gibi hatalı sıralama yapmaktadır. Karşılaştırma fonksiyonu kullanarak, doğru sıralama yaptırılabilir.

let sayilar4 = [480,19,35,103,17,103]

let sayilar5 = sayilar4.toSorted()

sayilar5 // [103, 103, 17, 19, 35, 480] -> hatalı sıralama
let sayilar6 = sayilar4.toSorted((a, b) => a - b)

sayilar6 // [17, 19, 35, 103, 103, 480]
let sayilar7 = sayilar4.toSorted((a, b) => b - a)

sayilar7 // [480, 103, 103, 35, 19, 17]
Array Metodları: reverse() & toReversed()