美文网首页
计算数组或对象中出现次数最多的元素

计算数组或对象中出现次数最多的元素

作者: bby365 | 来源:发表于2018-07-02 19:49 被阅读0次
  • 方案 1
    先转成对象,计算出每个元素出现的次数,再用数组进行排序。
// 计算每个元素出现的次数
var names = ['Alice', 'Bob', 'Bob','Bob','Bob', 'Tiff', 'Bruce', 'Alice'];

var countedNames = names.reduce(function (allNames, name) { 
    if (name in allNames) {
        allNames[name]++;
    }
    else {
        allNames[name] = 1;
    }
    return allNames;
    }, {});
// 转化成数组,排序
var array = [];
for (key in countedNames){
    array.push([key,countedNames[key]])
}

array.sort(function(a,b){
    return b[1] - a[1];
})

console.log(array[0])

这种方法,先转成对象,在转成数组,来回切换有点复杂。

  • 方案 2

相关文章

网友评论

      本文标题:计算数组或对象中出现次数最多的元素

      本文链接:https://www.haomeiwen.com/subject/mktruftx.html