使用 TypeScript 陣列求移動众数(movingMode)
在程式開發中,有時候會需要求出一組數據的移動众数,而 TypeScript 陣列可以提供一個簡單的方法來計算移動众数。
什麼是移動众数?
移動众数是一種統計技術,用於求出一組數據的众数,但是它不僅僅是求出一個數字,而是求出一組數據中出現次數最多的數字。
例如,如果一組數據是[1,2,3,4,5,6,7,8,9],那麼移動众数就是[2,3,4,5,6,7,8,9],因為這些數字出現次數最多。
如何使用 TypeScript 陣列求移動众数?
使用 TypeScript 陣列求移動众数的方法很簡單,只需要使用 Array.prototype.reduce()
方法來計算出現次數最多的數字即可。
// 定義一個陣列 let arr = [1,2,3,4,5,6,7,8,9]; // 使用 reduce() 方法計算出現次數最多的數字 let mode = arr.reduce((acc, curr) => { if (acc[curr]) { acc[curr]++; } else { acc[curr] = 1; } return acc; }, {}); // 找出出現次數最多的數字 let max = 0; let maxNum = 0; for (let num in mode) { if (mode[num] > max) { max = mode[num]; maxNum = num; } } // 輸出移動众数 let movingMode = arr.filter(num => num >= maxNum); console.log(movingMode); // [2,3,4,5,6,7,8,9]
上面的程式碼中,我們使用 Array.prototype.reduce()
方法來計算出現次數最多的數字,然後再使用 Array.prototype.filter()
方法來篩選出移動众数。
這樣就可以很容易的使用 TypeScript 陣列求出移動众数了!
總結
在本文中,我們學習了如何使用 TypeScript 陣列求移動众数,並且實際應用到了一個簡單的範例中。
雖然 TypeScript 陣列可以提供一個簡單的方法來計算移動众数,但是如果數據量很大的話,可能會導致性能問題,所以在實際應用時要特別注意。