//字符串 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