var elements = ['1','2','2','2','3','4','3'];
我希望一次性找到最受欢迎和最受欢迎的元素。
这里' 2'发生三次' 3'发生两次。
结果将是 -
popular = ['2', '3']
答案 0 :(得分:2)
这可能是可能的解决方案之一
var elements = ['1','2','2','2','3','4','3']; // input array
// create object with frquency count
var obj = {};
for (var i = 0; i < elements.length; i += 1) {
if (elements[i] in obj) {
obj[elements[i]] += 1;
} else {
obj[elements[i]] = 1;
}
}
// map obj to array
var array=[];
for(a in obj){
array.push([a,obj[a]])
}
// sort the array
array.sort(function(a,b){return a[1] - b[1]});
array.reverse();
// for first two popular elements
var result = [];
result[0] = array[0][0];
result[1] = array[1][0];
console.log(result);