作爲一個練習的答案,我必須創建一個函數,給定一個數組數組返回出現次數最多的函數,並且如果不止一個數字具有最大值發生次數返回次要發生次數。這是我所做的實現,但我正在拉我的頭髮,弄清楚爲什麼它在示例中返回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