作为一个练习的答案,我必须创建一个函数,给定一个数组数组返回出现次数最多的函数,并且如果不止一个数字具有最大值发生次数返回次要发生次数。这是我所做的实现,但我正在拉我的头发,弄清楚为什么它在示例中返回10而不是9。如何获得数组中数字的最大出现次数
它似乎是评估10 < 9为真。怎么了?
function maxOccurencies(arr) {
var aux = [], max = 0, final = null;
for (var i=0,t=arr.length; i<t; i++) {
aux[arr[i]] = (aux[arr[i]] || 0) + 1;
if (aux[arr[i]] > max) max = aux[arr[i]];
}
for (x in aux) {
if (aux[x] == max && (x < final || final == null)) {
final = x;
}
}
return final;
}
document.write(maxOccurencies([10,10,10,9,9,9,8,7,4,5,1]));
是的,'for x in y'给出'x'的值,它们真的是键而不是数字。您可以将它们用于'y [x]',但不用于其他计算而不转换它们的类型。 – m69