//字符串 var strs = "asdasdadd"; function getmaxstr(str){ if(str.length == 1){return str;} var newarr = []; for(var i = 0 ; ss= str.length, i<ss; i++ ){ if(!newarr[str.charAt(i)]){ newarr[str.charAt(i)] = 1; }else{ newarr[str.charAt(i)] +=1; } } console.log(newarr); var maxkey=''; var maxvalue=1;//設定一個值 for(var k in newarr){ if(newarr[k]> maxvalue){//根據這個值做判讀 將數組中的每個元素 與這個值做比較! 如果大於他,那么將住宿 maxvalue = newarr[k];//出現的次數 maxkey = k;//次數最多的 字母 } } console.log(maxkey); return maxvalue; } getmaxstr(strs); //數組 var arr =["a","b","c","c","c","d"]; Array.prototype.diaohuan=function(arr){ var newarr=[]; for(var i = 0; i<this.length; i++){ if(!newarr[this[i]] ){ newarr[this[i]] = 1; }else{ newarr[this[i]] +=1; } } console.log(newarr); var maxkey = 1; var maxvalue =""; for (var k in newarr){ if(newarr[k] > 1){ maxvalue =newarr[k]; maxkey = k; } } return maxvalue; console.log(maxvalue); } alert(arr.diaohuan());
函數的結構差不多,實際都是對數組的處理
一個主要的思路:新建一個空的數組newarr!將要處理的數組(字符串轉成數組)的元素做為鍵 存入新數組,
根據鍵的唯一做判斷,如果新數組newarr中沒有這個鍵,那么就存入,並給 值 為1,
如果新數組newarr中 有 這個鍵了,那么將該 鍵 對應的值 +1;。
然后 :對新數組newarr 取最大值!並獲取當前的索引,即可得到!!
用到的知識點:
1、charAt()函數:返回指定位置 長度為 1 的字符,
stringObject.charAt(index) index必需。表示字符串中某個位置的數字,即字符在字符串中的下標。
字符串中第一個字符的下標是 0。如果參數 index 不在 0 與 string.length 之間,該方法將返回一個空字符串;
例如:
var str="Hello world!" document.write(str.charAt(1)) 輸出 e
2、 for in 循環
用 for-in 來遍歷一遍數組的內容 例如:
const arr = [1, 2, 3]; let index; for(index in arr) { console.log("arr[" + index + "] = " + arr[index]); } //結果 arr[0] = 1 arr[1] = 2 arr[2] = 3
還可以遍歷對象 例如
const person = { fname: "san", lname: "zhang", age: 99 }; let info; for(info in person) { console.log("person[" + info + "] = " + person[info]); } //結果 person[fname] = san person[lname] = zhang person[age] = 99
