(Örnek Kodlar, Gerçek Hayat Benzetmeleri ve Fazla Kahve ☕ ile Anlatım)
“Bir dizide eleman aramak, kalabalık bir WhatsApp grubunda ‘Kim çayı bitirdi?’ sorusunu sormaya benzer.
Cevap vardır… ama doğru yöntemi kullanmazsan bulamazsın.” 😅
JavaScript’te array’ler (diziler) hayatın ta kendisi gibidir:
- Kullanıcı listeleri
- Ürünler
- Sepetler
- Skorlar
- API’dan gelen karmaşık veriler
Ve gün gelir, sen şunu dersin:
👉 “ŞU ELEMANI BULMAM LAZIM!”
İşte bugün o anlar için buradayız.
🧠 Array Search Nedir, Neden Önemlidir?
Çünkü:
- UI’da filtre yapacaksın
- Bir kullanıcıyı seçeceksin
- Bir ürünü sileceksin
- Bir hatayı ayıklayacaksın
Ve eğer doğru metodu bilmezsen:
for (let i = 0; i < array.length; i++) {
// gözyaşı, ter, stres…
}
Ama bilirsen:
array.find(...)
🎉 Hayat güzelleşir.
1️⃣ indexOf() – “Burada mı?” Diye Sor, Index’i Al
📌 Ne Yapar?
- Dizideki elemanın kaçıncı sırada olduğunu söyler
- Bulamazsa: -1 döner (yani “yok abi”)
🔧 Örnek
const colors = ["red", "green", "blue"];
const index = colors.indexOf("green");
console.log(index); // 1
🧠 Ne Oldu Burada?
indexOf()diziyi soldan sağa tarar- İlk bulduğu anda durur
- “green” → index 1
❌ Bulamazsa?
console.log(colors.indexOf("purple")); // -1
💡 -1 ne demek?
“Aradığın şey bu dizide yok.”
⚠️ EN KRİTİK TUZAK
if (colors.indexOf("red")) {
console.log("Var!");
}
🚨 HATA!
Çünkü:
"red"→ index 00→ false kabul edilir
✅ DOĞRUSU:
if (colors.indexOf("red") !== -1) {
console.log("Red burada 🎯");
}
❗ Ne Zaman Kullanma?
const users = [{ id: 1 }, { id: 2 }];
users.indexOf({ id: 1 }); // ❌ ASLA BULAMAZ
Çünkü indexOf() objelerde çalışmaz.
2️⃣ includes() – “Var mı Yok mu?” Net Cevap
📌 Ne Yapar?
- Sadece true / false döndürür
- Detay yok, dedikodu yok 😄
🔧 Örnek
const languages = ["JS", "Python", "Go"];
languages.includes("JS"); // true
languages.includes("Rust"); // false
🧠 Ne Zaman Kullanılır?
ifkoşullarında- Guard clause’larda
- Basit kontrol gerekiyorsa
if (languages.includes("Python")) {
console.log("Backend hazır 🐍");
}
💡 Küçük Ama Altın İpucu
const numbers = [1, 2, NaN];
numbers.includes(NaN); // true ✅
numbers.indexOf(NaN); // -1 ❌
🤯 Sürpriz!includes() → NaN’ı tanırindexOf() → tanımaz
3️⃣ find() – Array’in Sherlock Holmes’u 🕵️♂️
📌 Ne Yapar?
- Şarta uyan ilk elemanı bulur
- Elemanın kendisini döndürür
🔧 Örnek (Gerçek Hayat)
const users = [
{ id: 1, name: "Ali", active: false },
{ id: 2, name: "Ayşe", active: true },
{ id: 3, name: "Mehmet", active: true }
];
const activeUser = users.find(user => user.active);
console.log(activeUser);
📤 Çıktı:
{ id: 2, name: "Ayşe", active: true }
🧠 Ne Oldu?
- Dizi sırayla gezildi
active === trueilk kimdeyse → o döndü- Diğerleri umursanmadı 😄
❌ Bulamazsa?
const admin = users.find(u => u.role === "admin");
console.log(admin); // undefined
⚠️ Bu yüzden her zaman kontrol et:
if (admin) {
// güvenli alan
}
🎯 Ne Zaman find()?
- Tek bir kayıt arıyorsan
- ID, email, username gibi benzersiz değerlerde
- Backend verisiyle çalışıyorsan
4️⃣ findIndex() – “Buldum Ama Kaçıncı Sırada?”
📌 Ne Yapar?
find()gibi çalışır- Ama index döndürür
🔧 Örnek
const products = [
{ id: 101, name: "Laptop" },
{ id: 102, name: "Mouse" },
{ id: 103, name: "Keyboard" }
];
const index = products.findIndex(p => p.id === 102);
console.log(index); // 1
🧠 Ne İşe Yarar?
- Eleman silmek
- Güncellemek
if (index !== -1) {
products.splice(index, 1);
}
💥 Temiz. Net. Profesyonel.
5️⃣ filter() – “Hepsini Topla Gel” 🧺
📌 Ne Yapar?
- Şarta uyan TÜM elemanları getirir
- Yeni bir array döner
🔧 Örnek
const scores = [30, 85, 90, 40, 75];
const passed = scores.filter(score => score >= 60);
console.log(passed);
📤 Çıktı:
[85, 90, 75]
🧠 filter() Mantığı
- Her eleman tek tek kontrol edilir
truedönenler yeni diziye eklenirfalseolanlar kapıdan geri çevrilir 🚫
🔥 Gerçek Proje Örneği
const orders = [
{ id: 1, status: "pending" },
{ id: 2, status: "completed" },
{ id: 3, status: "completed" }
];
const completedOrders = orders.filter(o => o.status === "completed");
⚠️ En Sık Hata
const user = users.filter(u => u.id === 2);
😬 Sorun:
filter()→ array döner- Sen tek obje bekliyorsun
✅ Çözüm:
const user = users.find(u => u.id === 2);
🧠 Hangi Metodu Ne Zaman Kullanayım?
| Senaryo | Metot |
|---|---|
| Var mı / Yok mu | includes() |
| Index lazım | indexOf() |
| Obje bul | find() |
| Index + obje | findIndex() |
| Liste filtrele | filter() |
🚀 PRO SEVİYE İPUÇLARI
✅ find() → ilk eşleşmede durur (performans)
✅ filter() → tüm diziyi gezer
✅ Büyük datada doğru metot = hızlı uygulama
✅ includes() → en okunabilir kontrol
🎬 Final Sahnesi
Array search metotları:
- Kodunu kısaltır
- Okunabilirliği uçurur
- Seni “for loop bataklığından” kurtarır 🛟
İyi JavaScriptçi, aradığı şeyi hızlı bulan JavaScriptçidir. 😎
