In Arrays suchen
In stamps liegen oak, danach elm und noch einmal oak, und die Schublade bleibt auf dieser Seite gleich groß, weil du einen einzelnen Wert suchst statt jedes Fach zu besuchen.
Frag nach der Marke
Auf der vorigen Seite ist forEach jedes Lied abgelaufen und der Aufruf selbst kam als undefined zurück. Hier nennst du eine Marke, und die Schublade wird weder länger noch kürzer.
Vier Gestalten der Antwort
Bevor du eine Zahl liest, kläre welche Art Antwort du brauchst. Danach wählst du die Methode zu genau dieser Gestalt.
📊 Was jede Suche zurückgibt
| Methode | Die Frage | Was zurückkommt | Wenn nichts passt |
|---|---|---|---|
indexOf |
Fach der ersten Übereinstimmung | ein Index | -1 |
lastIndexOf |
Fach der letzten Übereinstimmung | ein Index | -1 |
includes |
liegt der Wert bereit | true oder false |
false |
find |
Stück, dessen Prüfung stimmt | das Stück selbst | undefined |
Fachnummern kommen von indexOf und lastIndexOf, während includes und find dir keine Fachnummer in die Hand geben.
Vordere Marke
Frag, in welchem Fach das erste oak sitzt. Erwarte die Zahl 0.
let stamps = ["oak", "elm", "oak"];
let slot = stamps.indexOf("oak");
console.log(slot);
Im Protokoll steht 0, und das spätere oak bleibt aus diesem Ergebnis draußen.
let stamps = ["oak", "elm", "oak"];
let slot = stamps.indexOf("pine");
console.log(slot);
console.log(stamps.length);
pine wurde nie abgelegt und im Protokoll steht -1. Die Länge bleibt 3, denn ein Fehltreffer löscht keine Marke.
let stamps = ["oak", "elm", "oak"];
let slot = stamps.lastIndexOf("oak");
console.log(slot);
Im Protokoll steht 2, also das oak am Ende der Schublade und nicht die Marke vorn.
let stamps = ["oak", "elm", "oak"];
console.log(stamps.includes("elm"));
console.log(stamps.includes("pine"));
Für elm erscheint true. Für pine erscheint false. Dieses false ist nicht -1.
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);
Die erste Zeile ist die Zeichenkette elm, die zweite ist undefined. Eine Prüfung, die keine Marke besteht, ist keine Fachnummer.
Das Fach auf die Seite schreiben
Mach aus dem Fach des ersten oak einen Text, und wenn die Suche -1 ergibt, setze das Wort missing in den Absatz.
<!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>
Der Absatz zeigt 0. Tausche den Suchbegriff gegen pine und lade die Seite neu. Danach steht dort das Wort missing.
Such selbst
Diese sechs Prüfungen gehören zur selben Schublade.
- Erstes oak-Fach protokollieren und 0 erwarten
- pine suchen, -1 erwarten und die Länge bei 3 lassen
- Letztes oak-Fach protokollieren und 2 erwarten
- Getrennt festhalten, ob elm da ist und ob pine da ist
- elm mit find holen, pine ebenfalls, und die Zeichenkette neben undefined legen
- Den Absatz lesen, nach pine suchen und neu laden
Leicht zu verwechseln
Halt diese sechs Fälle auseinander.
- -1 nicht als lesbares Fach behandeln
- true und false nicht wie eine Fachnummer lesen
- von find für elm nicht die Zahl 1 erwarten
- forEach nicht holen, wenn nur ja oder nein fehlt
- einen anderen Typ oder eine andere Großschreibung nicht als Treffer werten
- Erfolg nicht mit if (slot) prüfen, weil 0 ein echter Treffer ist
Diese Unterschiede behalten
Behalte die folgenden Unterschiede getrennt.
- Erster Treffer oder -1 kommt von indexOf
- Letzter Treffer oder -1 kommt von lastIndexOf
- Ja oder nein kommt von includes
- Die Marke selbst oder undefined kommt von find
- Ein Fehltreffer lässt die Länge in Ruhe
- Als Nächstes kommen Datum und Uhrzeit
🧠 Testen Sie Ihr Wissen
Testen Sie Ihr Wissen
Fordern Sie sich mit diesem interaktiven Quiz heraus und sehen Sie, wie gut Sie das Thema verstehen
📝 Anweisungen
- Lesen Sie jede Frage sorgfältig
- Wählen Sie die beste Antwort für jede Frage
- Sie können das Quiz so oft wiederholen, wie Sie möchten
- Ihr Fortschritt wird oben angezeigt