無論您是準備編碼面試還是希望提高解決問題的能力,練習演算法都是掌握 JavaScript 的關鍵。演算法不僅適合高級開發人員,它們是理解如何操作資料和最佳化應用程式效能的基礎。
在這篇文章中,我們將探討每個開發人員都應該練習的一些基本 JavaScript 演算法問題。這些問題涵蓋了一系列主題,從基本的陣列操作到更複雜的字串處理,為您解決更高級的問題奠定了堅實的基礎。
問題:
編寫一個函數,以字串作為輸入並傳回反轉後的字串。
範例:
// Input: "hello" // Output: "olleh"
解:
JavaScript 中有多種反轉字串的方法。最簡單的方法之一是將字串拆分為字元數組,反轉該數組,然後將其重新連接回字串。
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 的數字。但是對於三的倍數,列印“Fizz”而不是數字,對於五的倍數,列印“Buzz”。對於三和五的倍數的數字,列印“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]
解:
刪除重複項最簡單的方法之一是使用 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中文網其他相關文章!