<script>
var str = "zhaochucichuzuiduodezifu";
var o = {};
for (var i = 0, length = str.length; i < length; i++) {
// var char = str[i];
var char = str.charAt(i);
if (o[char]) { //char就是对象o的一个属性,o[char]是属性值,o[char]控制出现的次数
o[char]++; //次数加1
} else {
o[char] = 1; //若第一次出现,次数记为1
}
}
console.log(o); //输出的是完整的对象,记录着每一个字符及其出现的次数
//遍历对象,找到出现次数最多的字符和次数
var max = 0;
var maxChar = null;
for (var key in o) {
if (max < o[key]) {
max = o[key]; //max始终储存次数最大的那个
maxChar = key; //那么对应的字符就是当前的key
}
}
console.log("最多的字符是" + maxChar);
console.log("出现的次数是" + max);
</script>
网上找到的一种方法
其中 if (o[char]) 这里没看懂。如果单纯的输出o[char]肯定为什么undefined执行了else使他为1然后执行 也只执行一次。 为什么最后会输出一个0的对象着实不明白。这个key vaule是这么加入到这个对象里的
红颜莎娜
jeck猫
守着一只汪
慕容3067478
婷婷同学_
相关分类