需求: 有一个字符串数组,找出出现次数最多的字符及对应的次数
<script> //有一个字符串数组,找出出现次数最多的字符及对应的次数 let str = ['a', 'b', 'a', 's', 'f', 'g', 'g', 'g', 'h', 'j', 'j', 'k', 'k', 'g', 'f', 'd', 'd', 's', 's', 's', 's', 's', '3', '4', '4', '4', '3', '4', '3']; /*思路: 利用对象两个特点 属性可以动态添加= 属性与属性值之间是一个键值对的关系 1.声明一个空对象,遍历字符串 2.将字符串的字符作为对象的属性,出现的次数作为对象的属性值 */ let objc = {}; for (let i = 0; i < str.length; i++) { let s = str[i]; //先判断对象是否有该属性 if (objc[s] == undefined) {//使用字符串语法对对象取值,如果取出来是undefined,表示对象没有这个属性 //既然没有表示这个字符是第一次出现,那么就将这个字符作为对象的属性,属性的值为1 (第一次出现) objc[s] = 1;//动态赋值 } else {//如果对象有这个属性,则让这个属性的值自身+1 (每出现一次就加1) objc[s]++; } } console.log(objc);//遍历这个对象,就知道哪个字符出现的最多了 </script>