JavaScriptの学習において、コーディング問題は非常に効果的です。ここでは、すぐに実践できる5つのJavaScriptの問題を紹介します。それぞれの問題は、基礎的な概念から少し応用的な要素を含んでおり、実践的なスキルを磨くのに役立ちます。問題の最後に解答と解説をまとめていますので、まずは挑戦してみてください。
問題1: 数字の配列から最大値を見つける
配列の中に含まれる数字から、最も大きい値を返す関数 findMaxValue
を作成してください。この関数は、ループを使用して配列を走査し、最大値を見つける必要があります。
ヒント: Math.max()
を使用しない方法を考えてみましょう。
functionfindMaxValue(arr) {
// ここにコードを書いてください
}
// 使用例:console.log(findMaxValue([10, 20, 30, 5, 60])); // 出力例: 60
問題2: 文字列の中の母音の数を数える
与えられた文字列の中に含まれる母音の数を数える関数 countVowels
を作成してください。母音は「a, e, i, o, u」と定義します。大文字小文字の違いも考慮してください。
ヒント: 文字列を1文字ずつチェックし、条件に合うか確認します。
functioncountVowels(str) {
// ここにコードを書いてください
}
// 使用例:console.log(countVowels("JavaScript is Awesome!")); // 出力例: 7
問題3: 文字列を逆順にする
与えられた文字列を逆順にして返す関数 reverseString
を作成してください。これは配列のメソッドやループを使用することで簡単に実装できます。
ヒント: split()
, reverse()
, join()
メソッドの組み合わせを検討してみてください。
functionreverseString(str) {
// ここにコードを書いてください
}
// 使用例:console.log(reverseString("Hello, World!")); // 出力例: !dlroW ,olleH
問題4: 数字が回文かどうかをチェックする
与えられた数字が回文(左右対称な数字)かどうかをチェックする関数 isPalindromeNumber
を作成してください。回文かどうかを判断するには、まず数字を文字列に変換してから比較します。
ヒント: まず文字列に変換し、その後に文字列操作を行います。
functionisPalindromeNumber(num) {
// ここにコードを書いてください
}
// 使用例:console.log(isPalindromeNumber(12321)); // 出力例: trueconsole.log(isPalindromeNumber(12345)); // 出力例: false
問題5: フィボナッチ数列を生成する
指定された数のフィボナッチ数列を生成する関数 generateFibonacci
を作成してください。フィボナッチ数列は、最初の2つの数が0と1であり、その後の各数が前の2つの数の合計になります。
ヒント: ループや再帰を使って実装することが可能です。
functiongenerateFibonacci(n) {
// ここにコードを書いてください
}
// 使用例:console.log(generateFibonacci(10)); // 出力例: [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
解答と解説
以下に、それぞれの問題に対する解答と解説を示します。
解答1: 数字の配列から最大値を見つける
functionfindMaxValue(arr) {
let max = arr[0]; // 配列の最初の値を最大値として仮定for(let i = 1; i < arr.length; i++) {
if(arr[i] > max) {
max = arr[i]; // 現在の最大値より大きい場合に更新
}
}
return max;
}
解説: この関数では、最初に配列の最初の値を max
変数に代入します。その後、ループを使って配列の各要素をチェックし、もし max
より大きい値が見つかった場合には、それを max
に更新します。
解答2: 文字列の中の母音の数を数える
functioncountVowels(str) {
let count = 0;
const vowels = ['a', 'e', 'i', 'o', 'u'];
for(let char of str.toLowerCase()) {
if(vowels.includes(char)) {
count++;
}
}
return count;
}
解説: この関数では、母音リストを用意し、文字列の各文字をループで確認します。母音リストに含まれている文字であれば、カウントを増やします。
解答3: 文字列を逆順にする
functionreverseString(str) {
return str.split('').reverse().join('');
}
解説: この関数では、まず文字列を配列に分割し、逆順に並べ替えてから再度文字列に結合しています。これにより、元の文字列の逆順を取得できます。
解答4: 数字が回文かどうかをチェックする
functionisPalindromeNumber(num) {
const str = num.toString(); // 数字を文字列に変換const reversedStr = str.split('').reverse().join(''); // 文字列を逆順にreturn str === reversedStr; // 元の文字列と逆順の文字列を比較
}
解説: まず、数字を文字列に変換し、その後逆順に並べ替えます。元の文字列と逆順の文字列が同じであれば、その数字は回文です。
解答5: フィボナッチ数列を生成する
functiongenerateFibonacci(n) {
const fib = [0, 1];
for(let i = 2; i < n; i++) {
fib[i] = fib[i - 1] + fib[i - 2];
}
return fib;
}
解説: 最初の2つの数値(0と1)を配列に設定し、次の数値を前の2つの数値の合計として順次追加していきます。これにより、指定された長さのフィボナッチ数列を生成します。
これらの問題と解答を通じて、JavaScriptの基本的なスキルを磨くことができます。それぞれの問題には日常的なコーディングで役立つ知識が含まれており、特にアルゴリズムやロジックを考える力を養うことができます。ぜひ実際にコードを書いてみて、理解を深めてください。