Tüm blog yazıları

JavaScript’te İç İçe Diziler (Nested Arrays)

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

eminbasbayan3 dk okuma
JavaScript’te İç İçe Diziler (Nested Arrays)

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:

jsx
const sayilar = [3, 7, 15, 42];

Bu dizide sadece sayılar yer alıyor. Ancak, dizilerin içine başka diziler de koyabiliriz:

jsx
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:

jsx
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:

jsx
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ı 8x8’lik bir yapıya sahiptir. Bunu JavaScript ile temsil edebiliriz:

jsx
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:

jsx
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:

  1. İlk köşeli parantez, dış diziden bir alt diziyi alır.
  2. İ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ı:

jsx
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.

JavaScript Classes ile pratik uygulamalar, metotlar arası iletişim ve gerçek dünya kod örnekleri
JavaScript Dersleri9 dk okuma

JavaScript Classes - Pratik Uygulamalar

JavaScript class'ları ile pratik uygulamalara geçin! Metotlar arası iletişimden constructor'da metot çağırmaya, kod tekrarını azaltmaktan gerçek dünya senaryolarına kadar class kullanımının inceliklerini keşfedin. Kendi alışveriş sepeti örneğinizle bilginizi pekiştirin.

Yazıyı oku
JavaScript class yapısını gösteren bir kod örneği, ES6 ile modern nesne oluşturma
JavaScript Dersleri9 dk okuma

JavaScript Classes

ES6 ile JavaScript'e gelen class yapısı sayesinde nesne oluşturmak artık çok daha kolay ve düzenli! Constructor function karmaşasından kurtulup, okunabilir ve yönetilebilir kodlar yazmak isteyenler için modern JavaScript'in temel taşı olan class'ları tüm detaylarıyla keşfedin. Bu rehberle nesne şabl

Yazıyı oku
JavaScript kodunda Constructor Function ve new keyword'ü ile nesne oluşturma örnekleri
JavaScript Dersleri8 dk okuma

Constructor Functions ve new Keyword

Factory Function'ların hafıza israfı sorununa Constructor Function'lar ve new keyword'ü ile son verin! Metotları paylaştırarak JavaScript objelerini daha verimli nasıl oluşturacağınızı, new'in perde arkasında neler yaptığını ve prototype sisteminin gücünü bu rehberde keşfedin.

Yazıyı oku

Çerez tercihlerin

Platformun çalışması için zorunlu çerezler kullanıyoruz. İzin verirsen anonim kullanım verilerini ölçüyoruz. Ayrıntıları incele