web前端面试 您所在的位置:网站首页 求出现次数最多的字符 web前端面试

web前端面试

2024-07-05 03:49| 来源: 网络整理| 查看: 265

web前端面试-求数组中出现次数最多的元素

示例: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’];

思路分析:对象+擂台思想

想办法把数组中的所有元素变成新的样子对象:{a:3,b:2,s:6…} 通过对象遍历再用擂主思想找出最大值即可

1.定义一个空对象 2.让数组里面的值等于对象的属性名 3.先判断这个空对象中的属性值是否为undefinty 4.如果这个空对象的属性值不为空那就让这个空对象的属性值+1 5.打印这个空对象,空对象的属性名为这个数组的值,而这个空对象的值为这个数组相同值的个数

代码:

Document // 思路: // 1.定义一个空对象 // 2.让数组里面的值等于对象的属性名 // 3.先判断这个空对象中的属性值是否为undefinty // 4.如果这个空对象的属性值不为空那就让这个空对象的属性值+1 // 5.打印这个空对象,空对象的属性名为这个数组的值,而这个空对象的值为这个数组相同值的个数 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']; // 定义一个空对象 let obj = {}; // 遍历数组:从数组中取出元素:a b s 3 4...;判定对象中是否存在 str.forEach(function (item) { // item就是数组中的每个元素:a b s 3 4... if (obj[item] === undefined) { // * 不存在:undefined:第一次出现:增加一个当前元素,值为1 obj[item] = 1; } else { // * 存在:就有值,说明不是第一次出现:在原来的基础上+1 obj[item]++; } }); console.log(obj); // 求次数最多的字符及次数 擂台思想 // 声明两个变量接收次数最多的属性名和这个属性名的值,属性名暂时为空 let max = ""; let num; for (key in obj) { // console.log(key, dx[key]); if (obj[key] > max) { max = obj[key]; num = key; // console.log(num,max); } } console.log("字符串中出现次数最多的字符为:", num, "出现次数为", max);


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有