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);
// 10acc = 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); // 1some / every
const sayilar = [1, 2, 3];
sayilar.some((n) => n > 2); // true — en az biri
sayilar.every((n) => n > 0); // true — hepsiincludes / indexOf
[1, 2, 3].includes(2); // true
["a", "b"].indexOf("b"); // 1sort
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) = 120Okunabilirlik > zekâ. 4'ten fazla zincirleme oldu mu, ara bir değişkene al.