Lädt...

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.

Erstes oak

javascript
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.

Fehlendes pine

javascript
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.

Hinteres oak

javascript
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.

Ja oder nein

javascript
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.

Die Marke selbst

javascript
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.

Seitendemo — Fach oder missing

html
<!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.

  1. Erstes oak-Fach protokollieren und 0 erwarten
  2. pine suchen, -1 erwarten und die Länge bei 3 lassen
  3. Letztes oak-Fach protokollieren und 2 erwarten
  4. Getrennt festhalten, ob elm da ist und ob pine da ist
  5. elm mit find holen, pine ebenfalls, und die Zeichenkette neben undefined legen
  6. 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

Bereit zum Start

Testen Sie Ihr Wissen

Fordern Sie sich mit diesem interaktiven Quiz heraus und sehen Sie, wie gut Sie das Thema verstehen

❓
8
Fragen
🎯
70%
Zum Bestehen
♾️
∞
Zeit
🔄
∞
Versuche

📝 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