6.3 Recherche d'éléments (Primitives)

La recherche d'éléments dans un tableau diffère selon que vous manipulez des primitives ou des types de référence. On commence par le cas le plus simple : les primitives.

indexOf et lastIndexOf

La méthode indexOf reçoit la valeur à chercher et retourne l'index de la première occurrence trouvée. Si la valeur n'existe pas dans le tableau, elle retourne -1.

const numbers = [1, 2, 3, 4];
							console.log(numbers.indexOf(1));   // 0
							console.log(numbers.indexOf('a')); // -1
							console.log(numbers.indexOf('1')); // -1 — type strict !

Attention : la comparaison est stricte. La chaîne '1' n'est pas trouvée parmi des nombres, même si la valeur affichée est identique.

lastIndexOf fait la même chose mais en partant de la fin : utile si vous avez des doublons et cherchez la dernière occurrence.

const numbers = [1, 2, 3, 1, 4];
							console.log(numbers.lastIndexOf(1)); // 3

includes : plus simple et plus lisible

Pour simplement vérifier si une valeur existe dans le tableau, l'écriture numbers.indexOf(1) !== -1 fonctionne mais reste verbeuse. JavaScript moderne propose includes, qui retourne directement un booléen.

console.log(numbers.includes(1)); // true

L'index de départ optionnel

Toutes ces méthodes acceptent un second argument optionnel : l'index à partir duquel commencer la recherche. Pratique pour chercher la prochaine occurrence après une position connue.

numbers.indexOf(1, 2); // commence à l'index 2 → retourne 3

Ce trio indexOf, lastIndexOf, includes couvre 99% des recherches sur des primitives. Dans la prochaine vidéo, on attaque le cas plus complexe : la recherche d'objets dans un tableau.

En résumé

Cette leçon couvre les trois méthodes principales pour rechercher des éléments primitifs dans un tableau JavaScript : indexOf(), lastIndexOf() et includes(). Vous apprendrez comment utiliser indexOf() et lastIndexOf() pour obtenir la position d'un élément, vérifier son existence avec l'expression (indexOf() !== -1), et utiliser includes() pour une vérification booléenne directe. Un accent particulier est mis sur le paramètre optionnel fromIndex qui permet de définir à partir de quel index démarrer la recherche.

Points clés

  • indexOf(element) retourne l'index de l'élément trouvé ou -1 s'il n'existe pas
  • Le type des données est critique : chercher le nombre 1 n'est pas la même chose que chercher la chaîne '1'
  • lastIndexOf() fonctionne comme indexOf() mais retourne la position du dernier élément correspondant
  • includes() simplifie la vérification d'existence avec un retour booléen (true/false) plutôt qu'un index
  • Le paramètre fromIndex permet de contrôler la position de départ de la recherche dans le tableau
  • Ces méthodes s'appliquent aux types primitifs (nombres, chaînes) ; les types de référence sont couverts dans la prochaine leçon

Questions fréquentes

Quelle est la différence entre indexOf() et includes() ?

indexOf() retourne l'index numérique de l'élément trouvé ou -1 s'il n'existe pas, tandis que includes() retourne directement true ou false. Utilisez includes() pour vérifier simplement la présence d'un élément, et indexOf() si vous avez besoin de connaître sa position.

Pourquoi indexOf('1') retourne-t-il -1 dans un tableau [1, 2, 3, 4] ?

Parce que le type est important : le tableau contient le nombre 1 (primitif numérique) et non la chaîne de caractères '1'. indexOf() effectue une recherche stricte et ne trouve pas de correspondance entre le nombre 1 et la chaîne '1'.

À quoi sert le paramètre fromIndex ?

Le paramètre fromIndex (deuxième argument) indique l'index à partir duquel la recherche doit commencer. Par exemple, indexOf(2, 2) cherchera l'élément 2 en commençant à partir de la position d'index 2 du tableau, ignorant les éléments antérieurs.