使用 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 陣列可以提供一個簡單的方法來計算移動众数,但是如果數據量很大的話,可能會導致性能問題,所以在實際應用時要特別注意。

Categorized in:

Tagged in: