JavaScript Dizilerde Sıralama – En Küçük veya En Büyük Değeri Bulma

Bugün JavaScript dizilerde sıralama (hem küçükten büyüğe sıralamayı hem de büyükten küçüğe sıralamayı) ve dizinin en küçük elemanı ile en büyük elemanını nasıl bulabileceğimizi öğreneceğiz.

JavaScript de dizileri alfabetik olarak sıralamak için 2 metod bulunuyor.

  1. sort() Metodu
  2. reverse() Metodu

İlk olarak string veri türünde elemanları olan bir diziyi sort metodu ile sıralayalım.

 Çıktısı :  [“Audi”, “BMW”, “Hyundai”, “Toyota”, “Volvo”]

arabalar dizisini sort metodu ile alfabetik olarak sıraladık.

Eğer bir diziyi tersten sıralamak istiyorsak o zaman reverse metodunu kullanmalıyız.

 Çıktısı :  [“Audi”, “Hyundai”, “BMW”, “Volvo”, “Toyota”]

Reverse metodu ile dizi tersten sıralandı ama alfabetik olarak sıralanmadı. 

Eğer hem alfabetik hem de tersten sıralanmasını istiyorsanız sort ve reverse metodlarını birlikte kullanabilirsiniz.

 Çıktısı :  [“Volvo”, “Toyota”, “Hyundai”, “BMW”, “Audi”]

JavaScript Dizileri Sayısal Olarak Sıralama

Sort metodu sayısal değerler ile doğru çalışmayabilir. Örneğin;

 Çıktısı :  [13, 130, 150, 22, 34]

Dikkat ederseniz sort metodu diziyi küçükten büyüğe sıralarken yanlış sıraladı.

Bunun nedeni, sort metodu sayıları string bir değermiş gibi algılıyor. Örneğin 150 ile 22 değerleri üzerinden inceleyecek olursak;

Bu iki sayının da ilk basamağına bakıyor ve 1 rakamı 2’den küçük olduğu için 150 sayısını 22 den küçük olarak hesaplıyor.

Bu  problemi şu şekilde çözebiliriz.

 Çıktısı :  [13, 22, 34, 130, 150]

Sort metodu içerisine yazdığımız tek satırlık kod ile bu problemi çözebiliyoruz.

Sayısal değerlerden oluşan bir diziyi tersten yani büyükten küçüğe sıralamak için ise aşağıdaki kodu kullanıyoruz.

 Çıktısı :  [150, 130, 34, 22, 13]

Her defasında diziyi rastgele sırayla sıralamak için aşağıdaki kodu kullanabilirsiniz.

Random metodunu rastgele sayı üretmek için kullanıyoruz. Random metodu ile ilgili daha fazla bilgi için JavaScript Random Kullanımı (Rastgele Sayı Üretme) yazımı okuyabilirsiniz. 

JavaScript de dizi elemanları içerisindeki en büyük veya en küçük değeri bulmak için hazır bir metod bulunmuyor. 

Bunun için 3 farklı yöntemi kullanabiliriz.

 1. Yöntem :  Diziyi küçükten büyüğe sıraladıktan sonra en küçük eleman için dizinin sıfırıncı ([0]) indeksine en büyük eleman için ise dizinin son indeksine ([diziAdi.length – 1]) bakabiliriz.

İlk olarak bir dizideki en küçük değeri bulalım.

 Çıktısı :  En küçük sayı : 13

Şimdi de bir dizideki en büyük değeri bulalım.

 Çıktısı :  En büyük sayı : 150

Sadece en küçük veya en büyük değeri bulmak için tüm diziyi sıralamak çok verimsiz bir yöntemdir.

 2. Yöntem :  Bir dizideki en yüksek değeri bulmak için Math.max.apply metodunu, bir dizideki en küçük değeri bulmak için ise Math.min.apply metodunu kullanabiliriz.

Bunun için küçük bir fonksiyon yazmamız gerekiyor.

 Çıktısı :  En büyük sayı : 150 – En küçük sayı : 13

Aşağıdaki 2 kod aslında aynı işlemi gerçekleştiriyor.

  1. Math.min.apply(null, [13, 34, 22, 150, 130])
  2. Math.min(13, 34, 22, 150, 130)

 3. Yöntem :  Bir dizideki en küçük veya en büyük değeri bulmak için en kullanışlı yöntem kendi fonksiyonumuzu yazmaktır.

Bu işlem için aşağıdaki fonksiyonları kullanabilirsiniz.

 Çıktısı :  En küçük sayı : 13 – En büyük sayı : 150

Umarım “JavaScript Dizilerde Sıralama – En Küçük veya En Büyük Değeri Bulma” yazım sizin için faydalı olmuştur.

Yeni bir yazımda görüşmek üzere.

Kaynaklar : w3schools.com

Yorum Yazın