JavaScript: Başlangıçtan İleri Seviyeye
Bölüm 12 / 313 dk okuma

Diziler ve Array Metotları

Dizi oluşturma ve modern array metotları (map, filter, reduce, find, ...).

Dizi (Array), sıralı bir değer koleksiyonudur. Her element'in bir index'i vardır (0'dan başlar).

Tanımlama ve erişim

const sayilar = [1, 2, 3, 4, 5];
console.log(sayilar[0]);          // 1
console.log(sayilar[sayilar.length - 1]); // 5
 
sayilar[2] = 99;
console.log(sayilar); // [1, 2, 99, 4, 5]

Ekleme/çıkarma

const arr = [1, 2, 3];
 
arr.push(4);     // sona ekle → [1,2,3,4]
arr.pop();       // sondan al → 4 döner, [1,2,3]
arr.unshift(0);  // başa ekle → [0,1,2,3]
arr.shift();     // baştan al → 0 döner, [1,2,3]

Modern (immutable) metotlar

Bunlar yeni dizi döner, orijinali değiştirmez. Tercih edilen yaklaşımdır.

map — her elementi dönüştür

const sayilar = [1, 2, 3];
const kareler = sayilar.map((n) => n * n);
// [1, 4, 9]

filter — koşulu sağlayanları seç

const sayilar = [1, 2, 3, 4, 5];
const cift = sayilar.filter((n) => n % 2 === 0);
// [2, 4]

reduce — tek değere indir

const sayilar = [1, 2, 3, 4];
const toplam = sayilar.reduce((acc, n) => acc + n, 0);
// 10

acc = akümülatör, 0 = başlangıç değeri.

find / findIndex

const users = [{ id: 1, name: "Ali" }, { id: 2, name: "Ayşe" }];
 
users.find((u) => u.id === 2);      // {id:2, name:"Ayşe"}
users.findIndex((u) => u.id === 2); // 1

some / every

const sayilar = [1, 2, 3];
sayilar.some((n) => n > 2);   // true — en az biri
sayilar.every((n) => n > 0);  // true — hepsi

includes / indexOf

[1, 2, 3].includes(2);  // true
["a", "b"].indexOf("b"); // 1

sort

const sayilar = [3, 1, 4, 1, 5, 9, 2, 6];
sayilar.sort();              // [1,1,2,3,4,5,6,9]  ← string olarak sıralar!
sayilar.sort((a, b) => a - b); // sayısal artan
sayilar.sort((a, b) => b - a); // sayısal azalan
⚠️Dikkat

sort() orijinal diziyi değiştirir. Immutable istiyorsan kopyala: [...arr].sort(...).

slice / splice

  • slice(start, end): parça kopyalar, orijinali değiştirmez.
  • splice(start, deleteCount, ...items): orijinali değiştirir.
const arr = [1, 2, 3, 4, 5];
arr.slice(1, 3);   // [2, 3] — orijinal değişmez
arr.splice(1, 2);  // [2, 3] döner, arr = [1, 4, 5]

flat / flatMap

[1, [2, 3], [4, [5]]].flat();    // [1, 2, 3, 4, [5]]
[1, [2, 3], [4, [5]]].flat(2);   // [1, 2, 3, 4, 5]
 
["a b", "c d"].flatMap((s) => s.split(" "));
// ["a", "b", "c", "d"]

Zincirleme

const sonuc = [1, 2, 3, 4, 5, 6, 7, 8]
  .filter((n) => n % 2 === 0)
  .map((n) => n * n)
  .reduce((a, b) => a + b, 0);
 
// (2+4+6+8 → 4+16+36+64) = 120

Okunabilirlik > zekâ. 4'ten fazla zincirleme oldu mu, ara bir değişkene al.

Bu bölümü bitirdin mi?

İlerlemen tarayıcıda saklanır, eğitim listesinde görünür.

Paylaş