前幾天在學習js的時候,碰到了這樣一道面試題,要求計算出給你一個隨機亂敲的一個字元串,要求在其中找出那個字元出現的次數最多,以及出現的個數。 這你有兩種方案,請大家仔細閱讀,有可能在你將來的面試中會碰到。 一: 二: 謝!轉:http://www.cnblogs.com/heyongjun1997/ ...
前幾天在學習js的時候,碰到了這樣一道面試題,要求計算出給你一個隨機亂敲的一個字元串,要求在其中找出那個字元出現的次數最多,以及出現的個數。
這你有兩種方案,請大家仔細閱讀,有可能在你將來的面試中會碰到。
一:
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> <script type="text/javascript"> //給定一個字元串,需要在其中找出哪個字元出現的次數最多,並且計算出這個字元出現的總次數 //01自定義一個字元串 var str = "fjalsfj1fds;lafsafafafasfas"; /* 02.JSON定義法類似於直接定義法,JSON定義法就是將直接定義法定義的函數與屬性放到大括弧中, 並且去掉屬性與函數簽名的對象名,把等於號改為了冒號,每行後面改為逗號! */ var json = {}; //03遍歷str字元串 for (var i = 0; i < str.length; i++) { /*04.str.charAt(i):在字元串中取出對應的i處的索引的字元串。 判斷當前元素是否已經在數組中存在 */ if (!json[str.charAt(i)]) { json[str.charAt(i)] = 1;//05給對應數組元素中個數賦值 } else { json[str.charAt(i)]++; } } var iMax = 0;//出現次數 var iIndex = "";//元素名稱 for (var i in json) {//重新賦值出現最多的元素 if(json[i]>iMax){ iMax = json[i]; iIndex = i; } } alert("出現次數最多的是:"+iIndex+"出現"+iMax+"次"); </script> </head> <body> </body> </html>
二:
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> <script type="text/javascript"> var str = "adadfdfseffserfefsefseeffffftsdg"; //命名一個變數放置給出的字元串 var maxLength = 0; //命名一個變數放置字母出現的最高次數並初始化為0 var result = ''; //命名一個變數放置結果輸入 while (str != '') { //迴圈迭代開始,並判斷字元串是否為空 oldStr = str; //將原始的字元串變數賦值給新變數 getStr = str.substr(0, 1); //用字元串的substr的方法得到第一個字元(首字母) eval("str = str.replace(/" + getStr + "/g,'')"); if (oldStr.length - str.length > maxLength) { //判斷原始的字元串的長度減去替代後字元串長度是否大於之前出現的最大的字元串長度 maxLength = oldStr.length - str.length; //兩字元串長度相減得到最大的字元串長度 result = getStr + "=" + maxLength //返回最大的字元串結果(字母、出現次數) } } alert(result) //彈出結果 </script> </head> <body> </body> </html>
謝!轉:http://www.cnblogs.com/heyongjun1997/p/5556164.html