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

  • 方案 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

你可能感兴趣的:(计算数组或对象中出现次数最多的元素)