猿问
数组查找统计
var a = [ 'ping','ewewe','w','js','windvane' ,'ping'];
如何把数组出现大于一次的item提取出来,并注明它出现的次数
心有法竹
浏览 448
回答 1
1回答
湖上湖
返回的数组中,count为出现的次数,el代表元素。代码在下面,我之前也有写过这样的文章,你可以参考下。编写自己的代码库(javascript常用实例的实现与封装)//arr, rank->长度,默认为数组长度,ranktype,排序方式,默认降序function getCount(arr, rank,ranktype){ var obj = {}, k, arr1 = [] //记录每一元素出现的次数 for (var i = 0, len = arr.length; i < len; i++) { k = arr[i]; if (obj[k]) { obj[k]++; } else { obj[k] = 1; } } //保存结果{el-'元素',count-出现次数} for (var o in obj) { arr1.push({el: o, count: obj[o]}); } //排序(降序) arr1.sort(function (n1, n2) { return n2.count - n1.count }); //如果ranktype为1,则为升序,反转数组 if(ranktype===1){ arr1=arr1.reverse(); } var rank1 = rank || arr1.length; return arr1.slice(0,rank1);}
0
0
0
随时随地看视频
慕课网APP
相关分类
JavaScript
我要回答