Chainage de méthodes en Javascript

Inverse des chaînes et manipule des tableaux grâce aux méthodes split, reverse et join.

→ Challenge Correction: Bug-out Shelter #2 - First clues

Introduction et mécanique du challenge

On poursuit les corrigés des challenges de la Battle Dev Thales 2025.

Dans ce challenge, il était question de déchiffrer des prénoms et de vérifier s’ils étaient présents ou non dans un registre.

Les prénoms se présentaient sous cette forme : aeL|noeL|amairaM|seluJ

Assez vite, on pouvait comprendre qu’ils étaient écrits à l’envers. Et qu’il faudrait donc « retourner » chaque prénom pour trouver sa bonne version. Ici : Lea, Leon, Mariama et Jules

Grâce à la syntaxe de Javascript, ce challenge pouvait se résoudre « en 1 seule ligne » !

Chainage des méthodes

Voici la code de résolution du challenge :

const result = message
  .split('|')                          // Découpe le message en prénoms cryptés
  .map(p => [...p].reverse().join('')) // Décrypte chaque prénom
  .filter(p => registre.includes(p))   // Ne garde que ceux du registre
  .join('|');                          // Assemble le résultat final

console.log(result);                   // Affichage de la réponse

Un peu d’explications :

  • split() transforme la chaine de caractères en un tableau qui contient chaque prénom à l’envers
  • la ligne avec map :
    • On va parcourir chaque élément du tableau créé précédemment, donc chaque prénom à l’envers
    • L’opérateur de déstructuration […p] va retransformer la chaine de caractères en tableau : ‘aeL’ => [‘a’, ‘e’, ‘L’]
    • On retourne l’ordre des éléments du tableau avec reverse : [‘a’, ‘e’, ‘L’] => [‘L’, ‘e’, ‘a’]
    • On utilise join pour coller les éléments du tableau et faire une chaine de caractères : [‘L’, ‘e’, ‘a’] => ‘Lea’
  • Le filter va permettre de ne conserver que les prénoms qui sont inclus dans registre
  • Et un dernier join(‘|’) pour coller les éléments du tableau en une chaine de caractères avec le séparateur souhaité

Remarque : En JavaScript, les chaînes de caractères sont immuables : on ne peut pas les modifier directement. Pour les inverser, il faut donc les convertir en tableau, appliquer .reverse(), puis les retransformer en chaîne (mais c’est un excellent exemple de manipulation fonctionnelle des données !).

Ce code illustre parfaitement le chaînage de méthodes et l’approche sans boucle explicite. On transforme et filtre les données de manière déclarative plutôt qu’impérative.


Qui a codé ce superbe contenu ?

Keep learning

Other content to discover