コーディング面接の準備をしている場合でも、問題解決スキルを磨きたい場合でも、アルゴリズムを練習することが JavaScript をマスターする鍵となります。アルゴリズムは上級開発者だけのものではありません。アルゴリズムは、データを操作してアプリケーションのパフォーマンスを最適化する方法を理解するための基礎です。
この投稿では、すべての開発者が実践すべき JavaScript アルゴリズムに関する重要な質問をいくつか取り上げます。これらの質問は、基本的な配列操作からより複雑な文字列処理まで、幅広いトピックをカバーしており、より高度な問題に取り組むための強固な基盤を提供します。
問題:
文字列を入力として受け取り、文字列を反転して返す関数を作成します。
例:
// Input: "hello" // Output: "olleh"
解決策:
JavaScript で文字列を反転するには複数の方法があります。最も簡単な方法の 1 つは、文字列を文字の配列に分割し、配列を反転してから、結合して文字列に戻すことです。
function reverseString(str) { return str.split('').reverse().join(''); } console.log(reverseString("hello")); // Output: "olleh"
問題:
回文とは、後ろから読んでも前から読んでも同じになる単語またはフレーズです。指定された文字列が回文であるかどうかを確認する関数を作成します。
例:
// Input: "racecar" // Output: true // Input: "hello" // Output: false
解決策:
文字列反転メソッドを再利用して、元の文字列が反転した文字列と等しいかどうかを確認できます。
function isPalindrome(str) { const reversedStr = str.split('').reverse().join(''); return str === reversedStr; } console.log(isPalindrome("racecar")); // Output: true console.log(isPalindrome("hello")); // Output: false
問題:
数値の配列を入力として受け取り、最大の数値を返す関数を作成します。
例:
// Input: [1, 2, 3, 4, 5] // Output: 5
解決策:
Math.max メソッドをスプレッド演算子と組み合わせて使用すると、最大の数値を見つけることができます。
function findLargest(arr) { return Math.max(...arr); } console.log(findLargest([1, 2, 3, 4, 5])); // Output: 5
問題:
1 から 100 までの数値を出力する関数を作成します。ただし、3 の倍数の場合は数値の代わりに「Fizz」を出力し、5 の倍数の場合は「Buzz」を出力します。 3 と 5 の倍数の場合は、「FizzBuzz」と出力します。
解決策:
これは、基本的なループと条件文を実装する能力をテストする典型的な面接の質問です。
function fizzBuzz() { for (let i = 1; i <= 100; i++) { if (i % 3 === 0 && i % 5 === 0) { console.log("FizzBuzz"); } else if (i % 3 === 0) { console.log("Fizz"); } else if (i % 5 === 0) { console.log("Buzz"); } else { console.log(i); } } } fizzBuzz();
問題:
数値の階乗を返す関数を作成します。数値 n の階乗は、n 以下のすべての正の整数の積です。
例:
// Input: 5 // Output: 120 (5 * 4 * 3 * 2 * 1)
解決策:
階乗は再帰的または反復的に解くことができます。以下は再帰を使用した例です:
function factorialize(num) { if (num === 0 || num === 1) { return 1; } else { return num * factorialize(num - 1); } } console.log(factorialize(5)); // Output: 120
問題:
文字列を入力として受け取り、最長の単語の長さを返す関数を作成します。
例:
// Input: "The quick brown fox jumped over the lazy dog" // Output: 6 (jumped)
解決策:
文字列を単語の配列に分割し、配列を縮小して最長の単語を見つけることができます。
function findLongestWord(str) { const words = str.split(' '); let maxLength = 0; for (let word of words) { if (word.length > maxLength) { maxLength = word.length; } } return maxLength; } console.log(findLongestWord("The quick brown fox jumped over the lazy dog")); // Output: 6
問題:
配列から重複する値を削除する関数を作成します。
例:
// Input: [1, 2, 2, 3, 4, 4, 5] // Output: [1, 2, 3, 4, 5]
解決策:
重複を削除する最も簡単な方法の 1 つは、一意の値のみを保存する Set を使用することです。
function removeDuplicates(arr) { return [...new Set(arr)]; } console.log(removeDuplicates([1, 2, 2, 3, 4, 4, 5])); // Output: [1, 2, 3, 4, 5]
これらの基本的な JavaScript アルゴリズムの質問を練習すると、問題解決スキルが向上し、より高度な課題に備えることができます。これらの基本をマスターすると、効率的でスケーラブルなコードを作成するために不可欠な複雑なアルゴリズムとデータ構造に取り組む準備が整います。練習を続ければ、コーディングの速度と精度の両方が向上することがわかります!
以上が練習用の JavaScript アルゴリズムの基本的な質問の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。