【发布时间】:2016-08-23 09:07:16
【问题描述】:
在我的任务中,我必须编写一个程序来查找数组中出现频率最高的数字以及重复次数。我写了一些东西,但只打印了最大重复时间。所以我的问题是如何打印这个元素的值(最大数量)(在我的例子中是 4)? :)
var array = ['13', '4', '1', '1', '4', '2', '3', '4', '4', '1', '2', '4', '9', '3'];
function frequentNumber(arr) {
var result = [],
result2 = [];
sorted_arr = arr.sort();
console.log(sorted_arr);
n=1;
buffer = [];
for (var i = 0; i < sorted_arr.length; i++) {
if (sorted_arr[i + 1] === sorted_arr[i]) {
n++;
}else{
if(buffer.length != 0 ){
for(var j = 0; j < buffer.length; j++){
if(buffer[j] < n){
result = sorted_arr[j] + " is " + n;
}
}
}else{buffer.push(n)}
n=1;
}
}
// console.log(Math.max.apply(Math, buffer));
console.log(buffer);
}
frequentNumber(array);
【问题讨论】:
-
添加一个保存当前最高计数的变量,并在最后打印出来。每当您发现一个比前一个计数更频繁的数字时,覆盖它。
-
如果您有两个计数相同的值会发生什么?
标签: javascript