我遇到了一些問題,如何真正獲得我獲得的最大地圖價值。現在,我的代碼只顯示每個鍵的實際計數值,我堅持嘗試記錄最大值,我認爲在我的代碼中發生了什麼,for循環是通過counts [key]數組,但它仍將保留在1,這是第一個值,並停止,因爲唯一被記錄的數字是1.我不期待實際的答案,也許一些提示和提示,會導致我正確的方式。提前致謝。使用Javascript計算模式
var Mode = function(data) {
var counts = {};
for (let i = 0; i < data.length; i++) {
counts[data[i]] = (counts[data[i]] + 1) || 1;
}
for (var key in counts) {
if (counts.hasOwnProperty(key)) {
var maxValue = Math.max(counts[key]);
}
}
return maxValue;
}
console.log(Mode([1, 5, 2, 3, 3, 4, 4, 4]));
什麼是正確答案? 4或5? –
正確的答案是3,因爲我的代碼實際上是從數據中計算每個數組的值,所以基本上它是'1'= 1; '2'= 2; '3'= 2; '4'= 3; '5'= 1; 我實際上正在尋找的是比較數據數組的實際計數數量,這就是爲什麼我將所有這些數據放入地圖中,現在我試圖比較每個值並記錄正確答案 – Siegfried
但是'4'在你的例子中是最高的。 – Walf