手机版

JS获取数组中出现次数最多及第二多元素的方法

时间:2021-09-03 来源:互联网 编辑:宝哥软件园 浏览:

本文实例讲述了射流研究…获取数组中出现次数最多及第二多元素的方法。分享给大家供大家参考,具体如下:

整型数组中出现次数最多和第二多的元素

用哈希数组

函数风险值1;可变长度=arr . length var hash=[];//使用哈希数组for(I=0;ileng tti){ if(!hash[arr[I]])hash[arr[I]]=1;//没有初始化的数组元素为未定义,未定义为NaN else hash[arr[I]];} var max=0;//最多的次数var maxV//出现最多的元素定义变量秒=0;//第二多的次数var secondV//出现第二多的元素hash.forEach(函数(项,索引){//forEach函数会跳过空元素if(项目最大值){ second=maxsecondV=maxVmax=项目;maxV=索引;//用索引来保存原数组的值} else if(items second){ second=item;secondV=索引;} });返回{max,maxV,second,second v };}var arr=[2,2,2,2,3,4,5,4,3,1,4,4,100,100];var {max,maxV,second,SeCOnd v }=f(arr);//ES的元素解构赋值console.log(max、maxV、second、second v);运行结果:

数组中出现次数最多和第二多的元素

用对象保存值和次数

函数f(arr){ var temp=[];//对象数组风险值我;temp[0]={value:arr[0],索引:1 };//保存数组元素出现的次数和值由…改编sort();for(I=1;长度;I){ if(arr[I]==arr[I-1]){ temp[temp。长度-1].指数;}else{//不相同则新增一个对象元素temp.push({index:1,值: arr[I]);} } temp.sort(函数(a,b){//按照出现次数从大到小排列返回a .指数b指数;}) var max=temp[0]。指数;var maxV=temp[0].价值;定义变量秒=温度[1]。指数;var secondV=temp[1]。价值;返回{max,maxV,second,second v };}var arr=[2,2,3,4,5,100,100,3,1,4,4,100,100];var {max,maxV,second,SeCOnd v }=f(arr);console.log(max、maxV、second、second v);运行结果:

这种方法不仅可以用于整型数组的统计,还能用于字符数组的统计

以上代码改用ES6的形式书写

函数f(arr){ class num { constructor(value){ this。值=值;这个。索引=1;}添加(){ this。指数;} } arr。sort();让temp=[];temp[0]=new num(arr[0]);用于(设I=1;长度;I){ if(arr[I]==arr[I-1]){ temp[temp。长度-1].add();} else { temp。推送(新号码(arr[I]);} } temp.sort(函数(a,b){返回a . indexb。指数;})让最大值=温度[0]。指数;让maxV=temp[0].价值;让秒=温度[1]。指数;让秒v=温度[1]。价值;返回{max,maxV,second,second v };}var arr=['a ',' b ',' a ',' b ',' a ',' c ',' d ',' d '];var {max,maxV,second,SeCOnd v }=f(arr);console.log(max、maxV、second、second v);运行结果:

更多关于Java脚本语言相关内容感兴趣的读者可查看本站专题: 《JavaScript数组操作技巧总结》 、 《JavaScript排序算法总结》 、 《JavaScript数学运算用法总结》 、 《JavaScript数据结构与算法技巧总结》 、 《JavaScript遍历算法与技巧总结》 、 《JavaScript查找算法技巧总结》 及《JavaScript错误与调试技巧总结》

希望本文所述对大家Java脚本语言程序设计有所帮助。

版权声明:JS获取数组中出现次数最多及第二多元素的方法是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。