指定された配列内の各単語の最初の 3 文字を大文字にする関数。
P粉899950720
2023-07-29 10:09:17
<p>単語を受け取り、最初の 3 文字を大文字にする関数を書きました。次に、単語の配列に対して同じ関数を実行して、各単語の最初の 3 文字を大文字で返す必要があります。文中のすべての単語の最初の文字を大文字にする方法を尋ねる人がたくさんいますが、それは同じではありません。 console.log を使用して出力すると、出力は次のようになります。すでに作成した関数を使用する必要があります。
<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;">//str を受け取る関数は、最初の 3 文字を大文字にして返します。
関数capitalizeThreeLetters(str){
capFirst = str[0].toUpperCase(); とします。
capSecond = str[1].toUpperCase(); とします。
capThird = str[2].toUpperCase(); とします。
分割Str = str.slice(3);にしましょう。
let WholeStr = cap最初のキャップ2番目のキャップ3番目のsplitStr;
全体のStrを返します。
}
console.log(capitalizeThreeLetters('testing')); // => は 'TESting' を返します
console.log(capitalizeThreeLetters('again')); // => は 'AGAin' を返します
//文字列配列を受け取り、capitalizeThreeLetters 関数を各配列要素に適用して、各単語が最初の 3 文字が大文字で返されるようにする関数
関数 applyAll(arr){
for (let i = 0; i < arr.length; i ){
リターンcapitalizeThreeLetters(arr);
}
}
console.log(applyAll(['mai', 'brian', 'jeho', 'han'], CapitalizeThreeLetters));
// => 'MAIBRIANJEHOhan' を返します
// => は ['MAI', 'BRIan', 'JEHo', 'HAN']</pre> を返す必要があります。
<p><br /></p>
applyAll 関数が希望どおりに動作しません。戻ると、関数はすぐに終了します。この場合、ループ内に戻ることになり、ループが続行されなくなり、他の 2 つの反復が実行されます。
2 番目の問題は、単一の単語ではなく、配列全体を CapitalizeThreeLetters に渡していることです。 CapitalizeThreeLetters(arr[i]) を使用するとよいでしょう。ここで、配列全体を渡すことにより、配列内の各単語の最初の 3 文字ではなく、最初の 3 つの単語が大文字になります。
map メソッドを使用して修正できます:
リーリー配列に対してマップ関数を使用すると、配列の各要素に対して関数が呼び出され、結果を含む新しい配列が返されます。