首页  >  问答  >  正文

将给定数组中每个单词的前三个字母大写的函数。

<p>我写了一个函数,它接受一个单词并将前三个字母大写。现在我需要在一个单词数组上运行相同的函数,以便返回每个单词的前三个字母大写。我看到有很多人在问如何将句子中每个单词的第一个字母大写,但这不是同一件事。我必须使用我已经写好的函数,这样当我使用console.log打印它时,它的输出看起来像这样:</p> <pre class="brush:php;toolbar:false;">console.log(applyAll(['str1', 'str2', 'str3', 'str4'], capitalizeThreeLetters));</pre> <p>我尝试使用for循环来实现这个,但返回的是所有单词连在一起的结果。在我的研究中,我看到可以使用forEach()方法在数组元素上运行函数,但我无法弄清楚如何应用它。</p> <pre class="brush:php;toolbar:false;">//Function that takes in str returns it with three first letters capitalized function capitalizeThreeLetters(str){ let capFirst = str[0].toUpperCase(); let capSecond = str[1].toUpperCase(); let capThird = str[2].toUpperCase(); let splitStr = str.slice(3); let wholeStr = capFirst + capSecond + capThird + splitStr; return wholeStr; } console.log(capitalizeThreeLetters('testing')); // => returns 'TESting' console.log(capitalizeThreeLetters('again')); // => returns 'AGAin' //Function that takes in a string array and applies capitalizeThreeLetters function to each array element so each word is returned with first three letters capitalized function applyAll(arr){ for (let i = 0; i < arr.length; i++){ return capitalizeThreeLetters(arr); } } console.log(applyAll(['mai', 'brian', 'jeho', 'han'], capitalizeThreeLetters)); // => returns 'MAIBRIANJEHOhan' // => should return ['MAI', 'BRIan', 'JEHo', 'HAN']</pre> <p><br /></p>
P粉899950720P粉899950720423 天前454

全部回复(1)我来回复

  • P粉331849987

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

    你的applyAll函数并不按你想要的方式工作。当你返回时,函数立即退出。在这种情况下,你在循环内部返回,阻止了循环继续执行和运行其他两次迭代。

    你的第二个问题是,你将整个数组传递给了capitalizeThreeLetters,而不是一个单词。你可能想要使用capitalizeThreeLetters(arr[i])。现在,你传递了整个数组,导致数组中的前三个单词被大写,而不是每个单词的前三个字母。

    你可以使用map方法来修复它:

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

    在数组上使用map函数将会对数组的每个元素调用一个函数,然后返回一个包含结果的新数组。

    回复
    0
  • 取消回复