JavaScript programlamasında diziler, birden fazla veriyi tek bir yerde saklamamıza olanak tanır. Örneğin bir alışveriş listesi, bir öğrenci grubu veya günlük sıcaklık verileri gibi bilgileri tek tek değişkenlerde saklamak yerine, bir dizi içinde toplamak çok daha düzenli ve pratiktir.
Bu yazıda JavaScript dizileri üzerinde işlem yapmamıza olanak tanıyan bazı temel metotları öğreneceğiz. Her metodu günlük hayattan örneklerle açıklayarak kalıcı öğrenmeyi hedefleyeceğiz. Yazıda anlatılanlar:
- concat
- includes
- indexOf
- reverse
- slice
- splice
- sort
Konunun dışında hiçbir metoda değinilmeyecektir.
1. concat() – İki Diziyi Birleştirmek
Diyelim ki iki sınıfın öğrenci listeleri ayrı dizilerde tutuluyor:
let sinifA = ["Ali", "Zeynep"];
let sinifB = ["Berk", "Melis"];
Bu iki sınıfı tek bir liste altında toplamak istersek concat()
metodunu kullanabiliriz:
let tumOgrenciler = sinifA.concat(sinifB);
tumOgrenciler
şu şekilde olur:
["Ali", "Zeynep", "Berk", "Melis"]
Dikkat edilmesi gereken nokta şudur: concat
orijinal dizileri değiştirmez, yeni bir dizi oluşturur. sinifA
ve sinifB
hala eski haliyle durur.
2. includes() – Bir Eleman Listede Var mı?
Bir dizide belirli bir öğenin olup olmadığını kontrol etmek için includes()
metodunu kullanabiliriz. Örneğin:
let kitaplar = ["1984", "Sefiller", "Beyaz Gemi"];
kitaplar.includes("Sefiller"); // true
kitaplar.includes("Suç ve Ceza"); // false
Metinlerde büyük/küçük harf farklılığı önemlidir. "sefiller"
araması yapılırsa false
döner çünkü "Sefiller"
ile "sefiller"
farklıdır.
3. indexOf() – Bir Elemanın Sırasını Bulmak
Bir dizide aranan öğenin kaçıncı sırada olduğunu öğrenmek için indexOf()
kullanılır:
let filmler = ["Matrix", "Inception", "Interstellar", "Tenet"];
filmler.indexOf("Interstellar"); // 2
filmler.indexOf("Titanic"); // -1
Eğer öğe bulunamazsa sonuç -1
döner. Bu da öğenin dizide yer almadığını gösterir.
4. reverse() – Diziyi Tersine Çevirmek
Bir dizinin sırasını tamamen tersine çevirmek için reverse()
metodunu kullanırız:
let notlar = [80, 90, 70];
notlar.reverse();
Artık notlar
dizisi şu şekildedir:
[70, 90, 80]
Bu metot orijinal diziyi değiştirir. Yani notlar
artık eskisi gibi değildir.
5. slice() – Dizi Parçası Almak (Kopyalayarak)
Bir dizinin belli bir kısmını alıp yeni bir dizi oluşturmak için slice()
kullanılır. Bu işlem, orijinal diziyi değiştirmez.
let iller = ["İstanbul", "Ankara", "İzmir", "Antalya", "Bursa"];
let egeSehirlari = iller.slice(2, 4);
egeSehirlari
dizisi şu olur:
["İzmir", "Antalya"]
Burada dikkat edilmesi gereken: slice
ilk parametredeki indeksten başlar (dahil), ikinci parametredeki indekse kadar gider (hariç).
Ayrıca sondan saymak için negatif değer kullanılabilir:
iller.slice(-2); // ["Antalya", "Bursa"]
6. splice() – Sil, Ekle, Değiştir
splice()
metodu, hem silme hem ekleme hem de değiştirme işlemleri yapabilir. Ama önemli bir fark var: bu metot orijinal diziyi değiştirir.
Silme
let takim = ["kaleci", "defans", "orta saha", "forvet"];
takim.splice(1, 1); // defans silinir
Sonuç:
["kaleci", "orta saha", "forvet"]
Ekleme
takim.splice(2, 0, "kanat"); // 2. sıraya "kanat" eklenir
Sonuç:
["kaleci", "orta saha", "kanat", "forvet"]
Değiştirme
takim.splice(1, 1, "libero"); // 1. sıradaki "orta saha", "libero" ile değiştirilir
7. sort() – Sıralama (Dikkatli Kullanım)
Dizi sıralamak için sort()
kullanılır. Ama dikkat: sayı dizilerinde her zaman doğru sonuç vermez çünkü elemanları string gibi sıralar.
let sayilar = [8, 22, 5, 100];
sayilar.sort(); // [100, 22, 5, 8]
Neden? Çünkü “100”, "22″den önce gelir alfabetik sıralamada.
Dolayısıyla, sayısal olarak sıralamak için daha sonra öğreneceğimiz özel fonksiyonlar gerekir. Bu metodu şimdilik stringleri alfabetik sıralamak için kullanabiliriz:
let isimler = ["Zeynep", "Ali", "Mehmet"];
isimler.sort(); // ["Ali", "Mehmet", "Zeynep"]
Sonuç
Bu yazıda, JavaScript’in en sık kullanılan yedi dizi metodunu öğrendik. Her bir metodun ne işe yaradığını, nasıl kullanıldığını ve hangi durumlarda tercih edileceğini örneklerle açıkladık. Aşağıda her bir metodun kısa özeti verilmiştir:
Metot | Ne Yapar? | Orijinal Diziyi Değiştirir mi? |
concat | İki diziyi birleştirir | Hayır |
includes | Eleman var mı kontrol eder | Hayır |
indexOf | Elemanın dizideki sırasını verir | Hayır |
reverse | Diziyi ters çevirir | Evet |
slice | Dizinin belli bir kısmını alır (kopya) | Hayır |
splice | Silme, ekleme, değiştirme işlemi yapar | Evet |
sort | Sıralama yapar (dikkatli kullanılmalı) | Evet |
Bu temel bilgilerle artık JavaScript’te diziler üzerinde daha etkili işlemler yapabilirsiniz. İleride fonksiyonları da öğrendiğinizde bu bilgiler daha da güçlenecek ve gelişmiş metotları da kolayca kavrayabileceksiniz.