Programlamada verileri düzenli bir şekilde saklamak için diziler oldukça sık kullanılır. JavaScript’te diziler sadece basit veri türlerini değil, aynı zamanda daha karmaşık yapıları da içerebilir. Bu makalede, dizilerin içine başka dizilerin nasıl yerleştirilebileceğini ve bu iç içe yapıların nasıl kullanılacağını adım adım ele alacağız.
Dizilerde Saklanabilecek Veri Türleri
JavaScript dizileri, sadece string, number, boolean gibi temel veri tiplerini değil; aynı zamanda diğer dizileri ve ileride öğreneceğimiz nesneleri (objects) de saklayabilir.
Basit bir dizi şu şekilde tanımlanabilir:
const sayilar = [3, 7, 15, 42];
Bu dizide sadece sayılar yer alıyor. Ancak, dizilerin içine başka diziler de koyabiliriz:
const gunler = [
["Pazartesi", "Salı"],
["Çarşamba", "Perşembe"],
["Cuma", "Cumartesi", "Pazar"]
];
Yukarıdaki örnekte, gunler
isimli dizi, içinde üç adet başka dizi barındırıyor. Her iç dizi, belirli bir zaman dilimini (örneğin hafta başı, hafta ortası, hafta sonu) temsil ediyor olabilir.
İç İçe Diziler Ne İşe Yarar?
İç içe diziler, özellikle tablo benzeri verileri temsil etmekte çok işe yarar. Mesela bir sınıftaki öğrencilerin haftalık yoklamasını tutmak istiyoruz:
const yoklama = [
[true, true, false], // Ali
[true, false, false], // Ayşe
[true, true, true] // Mehmet
];
Burada her satır bir öğrenciyi, satırdaki her değer de bir günün yoklama durumunu gösteriyor. true
gelmiş, false
gelmemiş anlamına gelir.
İç İçe Dizi Elemanlarına Nasıl Erişilir?
Bir iç dizideki bir elemana ulaşmak için iki kat köşeli parantez kullanırız.
Örneğin yukarıdaki yoklama
dizisinde Ayşe’nin ikinci gün derse gelip gelmediğini kontrol etmek istiyoruz:
console.log(yoklama[1][1]); // false
Açıklayalım:
yoklama[1]
→ Ayşe’nin satırına ulaşır: [true, false, false]
yoklama[1][1]
→ Bu satırın ikinci elemanına bakar: false
Bu örnekte 2 kat parantez kullandık çünkü dizi 2 katmanlıydı. Daha derin bir yapı olsaydı, örneğin 3 boyutlu bir dizi (örneğin bir bina katlarındaki sınıfların doluluk durumu) olsaydı, üç kat parantez kullanmamız gerekirdi.
Farklı Bir Uygulama: Satranç Tahtası
Satranç tahtası 8×8’lik bir yapıya sahiptir. Bunu JavaScript ile temsil edebiliriz:
const satrancTahtasi = [
["K", "A", "F", "V", "Ş", "F", "A", "K"],
["P", "P", "P", "P", "P", "P", "P", "P"],
[null, null, null, null, null, null, null, null],
[null, null, null, null, null, null, null, null],
[null, null, null, null, null, null, null, null],
[null, null, null, null, null, null, null, null],
["p", "p", "p", "p", "p", "p", "p", "p"],
["k", "a", "f", "v", "ş", "f", "a", "k"]
];
Burada büyük harfler beyaz taşları, küçük harfler siyah taşları temsil eder. null
olan hücreler boştur.
Şimdi bu tahtada beyaz şahın yerini bulalım:
console.log(satrancTahtasi[0][4]); // "Ş"
İlk parantez satır numarasını, ikinci parantez sütun numarasını belirtir. Satırlar ve sütunlar 0′dan başlar.
Zincirleme Mantık
İç içe dizilere erişim şu sırayla işler:
- İlk köşeli parantez, dış diziden bir alt diziyi alır.
- İkinci köşeli parantez, o alt dizideki belirli bir elemana ulaşır.
Bu işlem, daha derin dizilerde üçlü, dörtlü zincirlerle devam edebilir.
Örneğin üç seviyeli bir yapı olsaydı:
veri[2][1][0]
Bu ifade, veri
dizisinin 3. elemanındaki (index 2) alt dizinin 2. elemanının (index 1) ilk elemanına (index 0) erişir.
Sonuç
İç içe diziler, JavaScript’te verileri mantıklı ve düzenli bir şekilde gruplamak için çok kullanışlıdır. Özellikle tablolar, oyun tahtaları ve çok boyutlu verilerde işe yarar. İlk başta karmaşık gibi görünebilir, ama mantığı anlaşıldığında oldukça güçlü ve pratik bir yapıdır.
Bu yapılarla çalışırken:
- Parantez sıralamasını dikkatli yazmak,
- Her seviyede neye ulaştığını anlamak
önemlidir. Zamanla alışarak bu tür yapıları rahatlıkla kullanabilir hale geleceksiniz.