Dizide arama
stamps içinde önce oak, sonra elm, sonra yine oak durur ve bu sayfada çekmece aynı boyda kalır, çünkü her göze uğramak yerine tek bir değer ararsın.
Pulun adını sor
Önceki sayfada forEach her şarkıya uğradı ve çağrının kendisi undefined döndü. Burada tek bir pulun adını söylersin, çekmece ne uzar ne kısalır.
Dört türlü yanıt
Bir sayı okumadan önce nasıl bir yanıt gerektiğine karar ver. Sonra yöntemi tam o türe göre seç.
📊 Her arama ne döndürür
| Yöntem | Soru | Ne gelir | Yoksa |
|---|---|---|---|
indexOf |
ilk eşleşmenin gözü | bir indeks | -1 |
lastIndexOf |
son eşleşmenin gözü | bir indeks | -1 |
includes |
değer duruyor mu | true veya false |
false |
find |
sınavı tutan parça | parçanın kendisi | undefined |
Göz numaraları indexOf ve lastIndexOf ile gelir, includes ile find ise sana göz numarası vermez.
Öndeki pul
İlk oak hangi gözde oturuyor, onu sor. 0 sayısını bekle.
let stamps = ["oak", "elm", "oak"];
let slot = stamps.indexOf("oak");
console.log(slot);
Günlükte 0 yazar ve arkadaki oak bu sonuca girmez.
let stamps = ["oak", "elm", "oak"];
let slot = stamps.indexOf("pine");
console.log(slot);
console.log(stamps.length);
pine hiç konmamıştı ve günlükte -1 yazar. Uzunluk 3 kalır, yani bulamamak bir pulu silmek değildir.
let stamps = ["oak", "elm", "oak"];
let slot = stamps.lastIndexOf("oak");
console.log(slot);
Günlükte 2 yazar, yani çekmecenin sonundaki oak, öndeki pul değil.
let stamps = ["oak", "elm", "oak"];
console.log(stamps.includes("elm"));
console.log(stamps.includes("pine"));
elm için true basılır. pine için false basılır. Bu false, -1 değildir.
let stamps = ["oak", "elm", "oak"];
let hit = stamps.find(function (name) {
return name === "elm";
});
console.log(hit);
let miss = stamps.find(function (name) {
return name === "pine";
});
console.log(miss);
İlk satır elm metnidir, ikincisi undefined. Hiçbir pulun geçemediği sınav bir göz numarası değildir.
Gözü sayfaya yaz
İlk oak gözünü metne çevir, arama -1 ise paragrafta missing sözcüğünü göster.
<!DOCTYPE html>
<html>
<head>
<title>array-search — page</title>
</head>
<body>
<p id="slot">…</p>
<script>
let stamps = ["oak", "elm", "oak"];
let slot = stamps.indexOf("oak");
let line = "missing";
if (slot !== -1) {
line = String(slot);
}
let box = document.getElementById("slot");
box.textContent = line;
</script>
</body>
</html>
Paragraf 0 gösterir. Aramayı pine yap ve sayfayı yenile. O zaman missing sözcüğünü görürsün.
Sen ara
Aynı çekmecede şu altı kontrolü yap.
- İlk oak gözünü yaz ve 0 bekle
- pine aramasını yaz, -1 bekle, uzunluk 3 kalsın
- Son oak gözünü yaz ve 2 bekle
- elm var mı pine var mı, ayrı ayrı yaz
- find ile elm al, pine de al, metni undefined yanına koy
- Paragrafı oku, pine ara ve sayfayı yenile
Karıştırması kolay
Bu altı durumu bir tutma.
- -1 değerini okunabilir göz sayma
- true veya false değerini göz numarası gibi okuma
- find yönteminden elm için 1 bekleme
- Yalnızca evet ya da hayır yetiyorsa forEach alma
- Başka bir türü veya başka bir büyük-küçük harfi eşleşme sayma
- Başarıyı if (slot) ile ölçme, çünkü 0 gerçek bir isabettir
Yanında kalsın
Bu ayrımı yanında tut.
- İlk eşleşme veya -1, indexOf işidir
- Son eşleşme veya -1, lastIndexOf işidir
- Evet ya da hayır, includes işidir
- Pulun kendisi veya undefined, find işidir
- Bulamamak uzunluğu değiştirmez
- Sonraki sayfa tarih ve saattir
🧠 Bilginizi Test Edin
Bilginizi Test Edin
Bu interaktif sınavla kendini test et ve konuyu ne kadar iyi anladığını gör
📝 Talimatlar
- Her soruyu dikkatle okuyun
- Her soru için en iyi cevabı seçin
- Quiz'i istediğiniz kadar tekrar alabilirsiniz
- İlerlemeniz üstte gösterilecek