- 方案 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
网友评论