展平嵌套物件
問題:寫一個函數來展平巢狀的 JavaScript 物件。
代碼:
function flattenObject(obj, prefix = '', res = {}) { ** for (let key in obj) {** ** const newKey = prefix ? ${prefix}.${key} : key;** ** if (typeof obj[key] === 'object' && obj[key] !== null) {** ** flattenObject(obj[key], newKey, res);** ** } else {** ** res[newKey] = obj[key];** ** }** ** }** ** return res;** } console.log(flattenObject({ a: { b: { c: 1 } }, d: 2 })); // Output: { 'a.b.c': 1, d: 2 }
2。找出數組中的重複項
問題:寫一個函數來找出陣列中的重複值。
代碼:
function findDuplicates(arr) { ** const counts = {};** ** return arr.filter(item => counts[item] ? true : (counts[item] = 1, false));** } console.log(findDuplicates([1, 2, 2, 3, 4, 4, 5])); // Output: [2, 4]
3。實現去抖
問題:寫一個去抖函數來限制函數呼叫的速率。
代碼:
function debounce(func, delay) { ** let timer;** ** return function (...args) {** ** clearTimeout(timer);** ** timer = setTimeout(() => func.apply(this, args), delay);** ** };** } const log = debounce(() => console.log('Logged after 1s'), 1000); log();
4。遞歸地反轉字串
問題:寫一個遞歸函數來反轉字串。
代碼:
function reverseString(str) { ** if (str === "") return "";** ** return reverseString(str.slice(1)) + str[0];** } console.log(reverseString("hello")); // Output: "olleh"
5。檢查回文
問題:寫一個函數來檢查字串是否是回文。
代碼:
function isPalindrome(str) { ** const cleaned = str.toLowerCase().replace(/[^a-z]/g, '');** ** return cleaned === cleaned.split('').reverse().join('');** } console.log(isPalindrome("A man, a plan, a canal, Panama")); // Output: true
閱讀更多... ⇲
JavaScript 面試問題和答案(附程式碼)
用程式碼反應面試問題和答案
角度面試問題
CSS 面試問題及其答案和程式碼
以上是JavaScript 面試問題和答案(附程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!