如何寻找一个字符串中出现数量最多的值为多少,并打印出这个最多数值的单字符,要写成一个这样的值,当然是写成Object形式最便于取值,使用冒泡排序,代码如下:
var strings = 'asdsgahghhhhhhhhhhssssssvzxvzbbhghhhhhh';
function getMore(list) {
var obj = {},//一个对象的基本组成: key:value,key:value...
num = 0, //value值
item = 0; //key值
for (var i in list) {
//在字符串中对每个字符进行遍历,以用来查找收集值
obj[list[i]] ? obj[list[i]] += 1 : obj[list[i]] = 1
//此处的三目运算符可以看做为一个简单的是否if判断
//if(obj要获取它的值,用遍历到的obj[list[i]]){
//如果获得相同的,便在它的obj[list[i]](obj[key]=value)得到的value值上+1}
//else{
//否则,便返回它的初始值不变
//}
//}
}
for (var j in obj) {
// 从obj中获取key值j,对obj中的key值进行遍历
if (obj[j] > num) {
//当obj[key]>value时
num = obj[j]
//对value为num的变量进行不断的赋值,不断赋值比之前遍历的大的值,直到出现最大的值,不发生变化
item = j
//得到最大的值,此时的key值就是它对应的值
}
}
console.log(item, num)
return obj;
}
console.log(getMore(strings))//打印,获得一个key值为字符串中的单字符,value值为数字,有多个值的对象
网友评论