首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找javascript数组中出现次数最多的3个值。我只需要3次

查找javascript数组中出现次数最多的3个值。我只需要3次
EN

Stack Overflow用户
提问于 2016-11-18 01:34:53
回答 2查看 111关注 0票数 0

我有javascript数组,在这个数组中,我需要返回3个发生率最高的值。假设我们有这样一个数组。

代码语言:javascript
复制
[1,3,4,5,2,3,4,5,6,7,8,5,4,5,3,5,6,7,3,5,6,5,6,3,4,5,6,6]

1-1乘以2-1乘以3-5乘以4-4乘以5-8乘以6-6乘以7-2乘以8-1

如何使用jQuery返回3个出现次数最多的值(在本例中为4、5和6)。

希望这是合理的。

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-18 01:56:25

代码语言:javascript
复制
var arr = [1,3,4,5,2,3,4,5,6,7,8,5,4,5,3,5,6,7,3,5,6,5,6,3,4,5,6,6];

var x = arr.reduce(function(result, item) {
    result[item] = result[item] || {count:0};
    ++result[item].count;
    return result;
}, {});
var y = Object.keys(x).sort(function(a, b) {
    return x[b].count - x[a].count;
}).slice(0,3);
console.log(y);
票数 0
EN

Stack Overflow用户

发布于 2016-11-18 04:47:52

代码语言:javascript
复制
var arr = [5, 5, 5, 2, 2, 2, 2, 2, 9, 4,1,1,2,1,1,1,3,3,3,3,3];
var counts = {};

for(var i = 0; i< arr.length; i++) {
    var num = arr[i];
    counts[num] = counts[num] ? counts[num]+1 : 1;
}
console.log(counts);// return object which return key value pair count like  Object {2: 5, 4: 1, 5: 3, 9: 1} 2 five time,4 one time, 5 three time in array
var keysSorted = Object.keys(counts).sort(function(a,b){return counts[a]-counts[b]})
alert(keysSorted); 

alert(keysSorted); //this is asc order, last 3 values are max occurance

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40668016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档