Maison  >  Questions et réponses  >  le corps du texte

Une fonction qui met en majuscule les trois premières lettres de chaque mot dans le tableau donné.

<p>J'ai écrit une fonction qui prend un mot et met en majuscule les trois premières lettres. Maintenant, je dois exécuter la même fonction sur un tableau de mots pour renvoyer les trois premières lettres de chaque mot en majuscules. Je vois beaucoup de gens demander comment mettre en majuscule la première lettre de chaque mot dans une phrase, mais ce n'est pas la même chose. Je dois utiliser une fonction que j'ai déjà écrite pour que lorsque je l'imprime à l'aide de console.log, sa sortie ressemble à ceci : </p> <pre class="brush:php;toolbar:false;">console.log(applyAll(['str1', 'str2', 'str3', 'str4'], capitalizeThreeLetters));</pre> <p>J'ai essayé d'utiliser une boucle for pour y parvenir, mais elle a renvoyé le résultat de tous les mots concaténés. Dans mes recherches, j'ai vu que vous pouvez utiliser la méthode forEach() pour exécuter une fonction sur des éléments du tableau, mais je n'arrive pas à comprendre comment l'appliquer. </p> <pre class="brush:php;toolbar:false;">//La fonction qui prend str le renvoie avec trois premières lettres en majuscule fonction majusculeThreeLetters(str){ laissez capFirst = str[0].toUpperCase(); laissez capSecond = str[1].toUpperCase(); laissez capThird = str[2].toUpperCase(); laissez splitStr = str.slice(3); soit WholeStr = capFirst + capSecond + capThird + splitStr ; retourner WholeStre; } console.log(capitalizeThreeLetters('testing')); // => renvoie 'TESting' console.log(capitalizeThreeLetters('again')); // => renvoie 'AGAin' //Fonction qui prend un tableau de chaînes et applique la fonction capitalizeThreeLetters à chaque élément du tableau afin que chaque mot soit renvoyé avec les trois premières lettres en majuscules fonction appliquerTout(arr){ pour (soit i = 0; i < arr.length; i++){ return capitalizeThreeLetters(arr); } } console.log(applyAll(['mai', 'brian', 'jeho', 'han'], capitalizeThreeLetters)); // => renvoie 'MAIBRIANJEHOhan' // => devrait renvoyer ['MAI', 'BRIan', 'JEHo', 'HAN']</pre> <p><br /></p>
P粉899950720P粉899950720423 Il y a quelques jours457

répondre à tous(1)je répondrai

  • P粉331849987

    P粉3318499872023-07-30 00:31:04

    Votre fonction applyAll ne fonctionne pas comme vous le souhaitez. À votre retour, la fonction se termine immédiatement. Dans ce cas, vous revenez à l'intérieur de la boucle, empêchant la boucle de continuer et d'exécuter les deux autres itérations.

    Votre deuxième problème est que vous transmettez l'intégralité du tableau pour capitalizeThreeLetters, pas un seul mot. Vous souhaiterez peut-être utiliser capitalizeThreeLetters(arr[i]). Maintenant, vous transmettez l'intégralité du tableau, ce qui entraîne la mise en majuscule des trois premiers mots du tableau, plutôt que des trois premières lettres de chaque mot.

    Vous pouvez utiliser la méthode map pour résoudre ce problème :

    function applyAll(arr){
      return arr.map(capitalizeThreeLetters);
    }
    

    L'utilisation de la fonction map sur un tableau appellera une fonction sur chaque élément du tableau et renverra un nouveau tableau contenant les résultats.

    répondre
    0
  • Annulerrépondre