JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptで文字列内の母音の数を数える方法

文字列を受け取るJavaScript関数を作成する必要があります。この関数は、文字列に含まれる母音(a、e、i、o、u)の数を数え、各母音とその出現回数を対応付けたオブジェクトとして返すものです。

実装コード

以下がそのコード例です。

const str = 'this is an example string';
const vowelCount = (str = '') => {
    const splitString = str.split('');
    const obj = {};
    const vowels = "aeiou";
    splitString.forEach((letter) => {
        if (vowels.indexOf(letter.toLowerCase()) !== -1) {
            if (letter in obj) {
                obj[letter]++;
            } else {
                obj[letter] = 1;
            }
        }
    });
    return obj;
};
console.log(vowelCount(str));

実行結果

コンソールには以下のように出力されます。

{ i: 3, a: 2, e: 2 }

コードの解説

この関数の処理の流れは以下のとおりです。

まず、str.split('') で文字列を1文字ずつに分割した配列を作成し、母音を判定するための基準文字列 "aeiou" を用意します。

次に、forEach で各文字を順番に調べます。toLowerCase() で小文字に変換したうえで indexOf() を使って母音かどうかを判定し、母音であればオブジェクト obj にその文字がキーとして存在するかを確認します。すでに存在すればカウントを1増やし、存在しなければ1で初期化します。

最後に、各母音の出現回数をまとめたオブジェクトを返します。

なお、この例ではキーに元の文字を使用しているため、大文字と小文字は別々にカウントされる点に注意してください。大文字小文字を区別せずに数えたい場合は、obj[letter.toLowerCase()] のようにキーを小文字に統一するとよいでしょう。

  1. 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.le

  2. JavaScriptで0からnまで数えるときに「9」が出現する回数を数える方法

    問題 数値 n を引数として受け取るJavaScript関数を作成します。この関数は、0からnまで順番に数えていく過程で、数字の「9」が何回登場するかを数え、その合計回数を返す必要があります。 解決のアプローチ この問題は、次の手順でシンプルに解決できます。 0からnまでの各数値を文字列に変換する 変換した文字列の中に「9」が何文字含まれているかを調べる すべての数値分のカウントを合計して返す 文字列内の特定の文字を数えるには、split() で1文字ずつ分解し、reduce() を使って一致する文字をカウントする方法が有効です。 コード例 以下が実際のコードです。 const num