web前端|js教程
次数,重复,数组
web前端-js教程
以此开始我博客生涯
制作简单的淘宝客网站源码,vscode编译错误中文,删除Ubuntu条目,tomcat不加载war,爬虫 抢票,php 下载文件到本地,手机seo排名优化软件广告,校园自助打印网站源码,网站管理模板lzw
—————————————————–警醒自己
帮助源码,ubuntu自动隐藏,tomcat浏览器访问不通,python清理爬虫,php打包exe教程交流,肇东seo软文lzw
题目:数组中重复次数最多的元素
vc打印源码,ubuntu显卡怎么升级,tomcat上传大文件失败,桃叭爬虫,php8.0.17配置,seo资源网站seo工资lzw
废话不多说,直接上代码——-
第一种方法:
function getMost(arr){var hash = {};var m = 0; var trueEl;var el;for(var i = 0,len = arr.length; i = m){m = hash[el];trueEl = el; }}return trueEl;};
第二种方法:
function getMost(arr) {if (!arr.length) returnif (arr.length === 1) return 1var res = {}// 遍历数组for (var i=0,l=arr.length;i<l;i++) {if (!res[arr[i]]) {res[arr[i]] = 1;} else {res[arr[i]]++;}}// 遍历 resvar keys = Object.keys(res);console.log(keys);var maxNum = 0, maxEle;for (var i=0,l = keys.length;i maxNum) {maxNum = res[keys[i]];maxEle = keys[i];} return maxEle;}
第三种方法:
Array.prototype.getMost = function(){var obj = this.reduce((p,n) =>(p[n]++ ||(p[n] = 1),(p.max=p.max>=p[n]?p.max:p[n]), (p.key=p.max>p[n]?p.key:n), p), {});return key: + obj.key+ len: +obj.max;}var arr = [1,2,3,4,2,1,4,2,3,5];arr.getMost();
第三种方法有个bug,如果最多重复次数的元素有多个,则返回最后一个元素。