Chargement...

Recherche dans un tableau

stamps garde oak, puis elm, puis encore oak, et le tiroir reste de la même taille sur cette page parce que tu cherches une valeur au lieu de visiter chaque case.

Demande le timbre

Sur la page d’avant, forEach a visité chaque chanson et l’appel lui-même est revenu undefined. Ici tu nommes un seul timbre, et le tiroir ne grandit ni ne rétrécit.

Quatre formes de réponse

Avant de lire un nombre, précise la forme de réponse dont tu as besoin. Ensuite tu choisis la méthode selon cette forme.

📊 Ce que chaque recherche renvoie

Méthode La question Ce qui revient Si rien ne correspond
indexOf case du premier accord un indice -1
lastIndexOf case du dernier accord un indice -1
includes la valeur est-elle là true ou false false
find pièce dont le test réussit la pièce elle-même undefined

Les numéros de case viennent de indexOf et de lastIndexOf, alors que includes et find ne te donnent pas de case.

Timbre de devant

Demande dans quelle case se trouve le premier oak. Attends-toi au nombre 0.

Premier oak

javascript
let stamps = ["oak", "elm", "oak"];
let slot = stamps.indexOf("oak");
console.log(slot);

Le journal affiche 0, et le second oak reste en dehors de ce résultat.

pine absent

javascript
let stamps = ["oak", "elm", "oak"];
let slot = stamps.indexOf("pine");
console.log(slot);
console.log(stamps.length);

pine n’a jamais été rangé et le journal affiche -1. La longueur reste 3, donc un échec n’efface pas un timbre.

oak du fond

javascript
let stamps = ["oak", "elm", "oak"];
let slot = stamps.lastIndexOf("oak");
console.log(slot);

Le journal affiche 2, c’est-à-dire le oak au fond du tiroir et non le timbre de devant.

Oui ou non

javascript
let stamps = ["oak", "elm", "oak"];
console.log(stamps.includes("elm"));
console.log(stamps.includes("pine"));

Pour elm s’affiche true. Pour pine s’affiche false. Ce false n’est pas -1.

Le timbre lui-même

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);

La première ligne est le texte elm et la seconde est undefined. Un test qu’aucun timbre ne réussit n’est pas un numéro de case.

Écrire la case

Transforme la case du premier oak en texte, et si la recherche vaut -1 montre le mot missing dans le paragraphe.

Démo de page — case ou 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>

Le paragraphe affiche 0. Remplace la recherche par pine et recharge la page. Tu vois alors le mot missing.

À toi de chercher

Fais ces six vérifications dans le même tiroir.

  1. Note la case du premier oak et attends 0
  2. Note la recherche de pine et attends -1 pendant que la longueur reste 3
  3. Note la case du dernier oak et attends 2
  4. Note à part si elm est là et si pine est là
  5. Trouve elm avec find, trouve pine aussi, et pose le texte à côté de undefined
  6. Lis le paragraphe, cherche pine et recharge

Facile à mélanger

Ne confonds pas ces six cas.

  • Ne traite pas -1 comme une case lisible
  • Ne lis pas true ou false comme un indice
  • N’attends pas que find rende 1 pour elm
  • Ne prends pas forEach quand un oui ou un non suffit
  • Ne compte pas un autre type ou une autre casse comme un accord
  • Ne teste pas la réussite avec if (slot), car 0 est un vrai succès

Ce que tu gardes

Garde ces différences séparées.

  • Le premier accord ou -1 vient de indexOf
  • Le dernier accord ou -1 vient de lastIndexOf
  • Le oui ou non vient de includes
  • Le timbre lui-même ou undefined vient de find
  • Un échec laisse la longueur tranquille
  • La page suivante parle des dates

🧠 Testez Vos Connaissances

Prêt à Commencer

Testez Vos Connaissances

Mettez-vous au défi avec ce quiz interactif et voyez à quel point vous comprenez le sujet

❓
8
Questions
🎯
70%
Pour Réussir
♾️
∞
Temps
🔄
∞
Tentatives

📝 Instructions

  • Lisez chaque question attentivement
  • Sélectionnez la meilleure réponse pour chaque question
  • Vous pouvez refaire le quiz autant de fois que vous le souhaitez
  • Votre progression sera affichée en haut