D'accord, donc cette fois, je veux parler d'une fonction simple mais assez intéressante que j'ai rencontrée en apprenant JavaScript et que j'ai trouvée sur codewars. Le nom de la fonction est le plus longWord. Comme son nom l'indique, cette fonction recherchera et renverra le mot le plus long d'une chaîne.
Je vais vous expliquer pourquoi cette fonction fonctionne, quelles méthodes sont utilisées et les raisons. Allez, passons directement à l'explication détaillée !
Cette fonction a une tâche simple : elle accepte la saisie sous la forme d'une chaîne contenant plusieurs mots (séparés par des espaces), puis renvoie le mot le plus long. S'il s'avère qu'il y a plus d'un mot de même longueur, cette fonction prendra le dernier mot trouvé.
Un exemple est le suivant :
longestWord("Aku sedang belajar JavaScript yang menyenangkan"); // Output: "menyenangkan"
longestWord("red blue gold"); // Output: "gold"
Voici le code, il est vraiment court, mais ce qui est cool c'est que dans les coulisses, il se passe beaucoup de choses :
function longestWord(stringOfWords) { return stringOfWords .split(' ') // Pecah string jadi array kata-kata .sort((a, b) => a.length - b.length) // Urutkan berdasarkan panjang .slice(-1) // Ambil elemen terakhir (kata terpanjang) .toString(); // Ubah jadi string lagi }
Tout d'abord, la chaîne saisie est divisée en un tableau de mots avec la méthode split(' "). Les espaces dans la chaîne sont donc comme des séparateurs entre les mots.
Par exemple :
"Aku sedang belajar".split(' '); // Output: ["Aku", "sedang", "belajar"]
Ceci est important car nous ne pouvons pas manipuler directement des chaînes comme des tableaux. Avec split, chaque mot devient un élément de tableau très simple à gérer.
Après avoir constitué un tableau, nous trions les mots du plus court au plus long en utilisant la méthode de tri.
En quelque sorte, je donne un rappel (a, b) => a.longueur - b.longueur. Essentiellement, je demande à JavaScript de trier les éléments du tableau par longueur.
Le résultat ?
["Aku", "sedang", "belajar"].sort((a, b) => a.length - b.length); // Output: ["Aku", "sedang", "belajar"]
Le tableau étant trié, le mot le plus long doit être à la fin du tableau. Ainsi, la fonction slice(-1) consiste à prendre le dernier élément.
Un exemple est le suivant :
["Aku", "sedang", "belajar"].slice(-1); // Output: ["belajar"]
Le résultat de slice(-1) est en fait toujours sous la forme d'un tableau, même s'il ne contient qu'un seul élément. Pour qu'il corresponde au résultat demandé, nous le reconvertissons en chaîne en utilisant toString().
Résultat final :
longestWord("Aku sedang belajar JavaScript yang menyenangkan"); // Output: "menyenangkan"
Pour moi, la fonction longestWord est comme un bon exercice pour mémoriser certaines méthodes importantes en JavaScript, notamment pour travailler avec des chaînes et des tableaux. Grâce à cette fonction, je comprends également mieux le fonctionnement du fractionnement, du tri, du slice et du toString.
Si vous avez d'autres idées pour résoudre ce problème, ou peut-être souhaitez-vous une optimisation plus poussée, discutons-en ensemble dans la colonne des commentaires ! ?
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!