1. 請用javascript實現一個函數,可以快速判斷某個字符串是否是回文字符串。
function isPalindrome(str){ return str === str.split("").reverse().join(""); }
這個函數使用了js中的split()方法來將字符串轉換成數組,然后使用reverse()方法將數組倒序排列,最后再使用join()方法將數組轉回字符串。如果字符串本身等于倒序排列后的字符串,則表示原字符串是回文字符串。
2. 請用javascript實現一個函數,求一個數組中的最大值和最小值,且不能使用Math庫。
function findMinMax(arr){ var min = arr[0]; var max = arr[0]; for(var i=1;i<arr.length;i++){ if(arr[i]<min){ min = arr[i]; } if(arr[i]>max){ max = arr[i]; } } return {min:min, max:max}; }
這個函數使用了js中的for循環和if語句,通過逐個對比數組元素的大小來找到最大和最小值。
3. 請用javascript實現一個函數,將一個數字轉成千位分隔符格式。
function formatNumber(num){ var arr = num.toString().split("."); var int = arr[0]; var decimal = arr.length>1 ? "." + arr[1] : ""; var reg = /(\d)(?=(\d{3})+$)/g; return int.replace(reg,"$1,") + decimal; }
這個函數使用了正則表達式來匹配數字的千位分隔符位置,并通過replace()方法來將符合條件的數字加上逗號。最后將整數部分和小數部分拼接起來,返回處理后的字符串。
4. 請用javascript實現一個函數,判斷一個字符串是否包含另一個字符串。
function isContain(str1, str2){ return str1.indexOf(str2)>=0; }
這個函數使用了js中的indexOf()方法來查找字符串中是否包含另一個字符串。如果找到,則返回相應的位置,不存在則返回-1。
5. 請用javascript實現一個函數,給定一個字符串,將其中的單詞按照字母順序重新排列。
function sortWords(str){ return str.split(" ").map(function(word){return word.split("").sort().join("")}).join(" "); }
這個函數使用了js中的split()方法將字符串拆分成單詞,并使用map()方法讓每個單詞都執行一個排序函數。排序函數將單詞拆分成字母數組,并使用sort()方法將數組排列成字母順序。最后使用join()方法將排列好的單詞再拼成字符串。
6. 請用javascript實現一個函數,在數組中查找滿足要求的元素。
function searchArr(arr, condition){ var result = []; for(var i=0;i<arr.length;i++){ if(condition(arr[i])){ result.push(arr[i]); } } return result; }
這個函數接受兩個參數,一個是要檢索的數組,另一個是判斷條件的函數。函數內部使用了for循環遍歷數組,并使用if語句來檢查數組元素是否符合條件。如果符合,則將該元素添加到結果數組中。
7. 請用javascript實現一個函數,統計數組中每個元素出現的次數。
function countArr(arr){ var result = {}; for(var i=0;i<arr.length;i++){ var key = arr[i]; result[key] = result[key] ? result[key]+1 : 1; } return result; }
這個函數使用了一個對象來存放每個元素出現的次數。函數內部使用了for循環遍歷數組,并使用一個變量key來記錄當前元素的值。如果這個元素在對象中已經存在,則將該元素的計數器加1,否則初始化計數器值為1。
以上是一些常見的javascript面試題,通過這些問題的舉例,相信大家對javascript代碼面試也有了更好的理解。