【JavaScript】文字列配列に含まれる母音の数を数える方法
はじめに
本記事では、文字列の配列(要素は1文字の場合もあれば、複数文字の場合もあります)を受け取り、その配列に含まれるすべての母音(a・e・i・o・u)の個数を数えるJavaScript関数の作成方法を解説します。
実装例
まずは、実際に動作するコードを見てみましょう。
const arr = ['Amy','Dolly','Jason','Madison','Patricia'];
const countVowels = (arr = []) => {
const legend = 'aeiou';
const isVowel = c => legend.includes(c);
let count = 0;
arr.forEach(el => {
for(let i = 0; i < el.length; i++){
if(isVowel(el[i])){
count++;
};
};
});
return count;
};
console.log(countVowels(arr));
出力結果
このコードをコンソールで実行すると、次のように出力されます。
10
コードの解説
処理の流れはシンプルで、以下のステップで構成されています。
- legend:母音となる文字「aeiou」を定義した基準文字列です。
- isVowel:
String.prototype.includes()を使って、渡された1文字が母音かどうかを判定するヘルパー関数です。 - forEach:配列の各文字列に対し、1文字ずつ順番にチェックし、母音であればカウントを増やします。
注意点:大文字・小文字の扱い
includes() は大文字と小文字を区別するため、上記のコードでは「Amy」の先頭にある大文字「A」は母音としてカウントされません。大文字も正しくカウントしたい場合は、判定前に小文字へ変換しておくのがおすすめです。
const isVowel = c => legend.includes(c.toLowerCase());
このように1行変更するだけで、大文字・小文字を問わずすべての母音を正確に数えられるようになります。
-
JavaScriptで配列内の紛らわしい数(Confusing Number)を見つける方法
紛らわしい数(Confusing Numbers)とは? 配列内のある数値が「紛らわしい数」とみなされるのは、その数値を上下左右に180度回転した結果が、同じ配列内に存在する別の数値になる場合です。たとえば、6を180度回転すると9になり、逆に9を回転すると6になります。 ただし注意が必要なのは、180度回転しても有効な数字として成立するのは 0、1、6、8、9 の5種類だけという点です。2、3、4、5、7 を含む数値は、回転しても正しい数として扱うことができません。 今回求められているのは、自然数 num を第1引数(唯一の引数)として受け取るJavaScript関数を作成することです。この
-
JavaScriptで数値を反転して桁ごとの配列に分割する方法
問題概要数値を1つ受け取るJavaScriptの関数を作成する必要があります。この関数は、まず受け取った数値を反転させ、その反転した数値を1桁ずつに分割して、その配列を返すものとします。入力const num = 1234567;出力const output = [7, 6, 5, 4, 3, 2, 1];これは、反転後の数値が7654321になるためです。実装例以下がそのコードです。const num = 1234567; const reverseAndSplit = (num = 1) => { const numStr = String(num); &n