🔍 JavaScript Array Search

JavaScript Rehberi

(Ö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 0
  • 0 → 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?

  • if koş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ır
indexOf() → 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 === true ilk 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
  • true dönenler yeni diziye eklenir
  • false olanlar 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?

SenaryoMetot
Var mı / Yok muincludes()
Index lazımindexOf()
Obje bulfind()
Index + objefindIndex()
Liste filtrelefilter()

🚀 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. 😎

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir