JavaScriptで文字列内の母音を1始まりのインデックスに置き換える方法
問題
今回は、文字列を受け取り、その中に出現するすべての母音(a・e・i・o・u)を、文字列内での位置(1始まりのインデックス)に置き換えるJavaScript関数を作成します。
例えば、文字列の2番目の文字が母音だった場合、その文字は「2」に置き換えられます。
実装コード
以下が実際のコード例です −
const str = 'cancotainsomevowels';
const replaceVowels = (str = '') => {
const vowels = 'aeiou';
let res = '';
for(let i = 0; i < str.length; i++){
const el = str[i];
if(vowels.includes(el)){
res += (i + 1);
}else{
res += el;
};
};
return res;
};
console.log(replaceVowels(str));
コードの解説
この関数は以下の手順で動作します。
- 対象となる母音「aeiou」を定義した文字列
vowelsを用意します。 forループで文字列を先頭から1文字ずつ走査し、各文字がvowels.includes()によって母音かどうかを判定します。- 母音であれば、現在のインデックス
iに1を加えた値(1始まりの位置)を結果に連結し、母音以外の場合は元の文字をそのまま連結します。 - 最終的に組み立てられた文字列を返します。
出力結果
コンソールには以下のように出力されます −
c2nc5t78ns11m13v15w17ls
このように、元の文字列内のすべての母音が、それぞれの位置を表す数字へと置き換えられていることが確認できます。
-
JavaScriptで数値と文字数が一致する文字列を検証する方法
問題文字列 str を引数として受け取るJavaScript関数を作成することを考えます。この関数は、文字列内の英字部分を、その直前にある数字に基づいて検証する必要があります。具体的には、文字列を数字で分割し、各数字とそれに続く部分文字列の文字数を比較します。すべての組み合わせが一致していれば、その文字列は有効であるとして true を返し、一箇所でも不一致があれば false を返します。例えば、以下のような文字列を見てみましょう。5hello4from2meこの文字列に対しては、true を返す必要があります。なぜなら、数字で分割すると「hello」「from」「me」という3つの部分文字
-
JavaScriptで文字列の各文字を1始まりのインデックス回数だけ繰り返す方法
問題 英小文字(a〜z)のみで構成された文字列を受け取り、特定のルールに従って新しい文字列を構築するJavaScript関数を作成する必要があります。 ルールは以下のとおりです。 各文字を、その文字列内での1始まりのインデックスの回数だけ繰り返す 繰り返し後の文字列の先頭の文字を大文字にする 異なる文字のグループ同士はダッシュ「-」で区切る たとえば、文字列「abcd」の場合、出力は次のようになります。 A-Bb-Ccc-Dddd コード例 以下は、forループを使った基本的な実装例です。 const str = abcd; const repeatStrings = (str) =&