Ts/Js 實現抽獎功能--根據物品權重計算

  /**
     * 
     * @param vWeight 權重的數組:例如【1,1,1,1,1】
     * @returns //注意:返回的下標加1(佔第幾個)
     */
  public static GetPrize(vWeight: number[]): number {
        //計算權重之和  prev 是前一次累加後的數值,currVal 是本次待加的數值
        let weightSum = vWeight.reduce((prev, currVal) => {
            return prev + currVal;
        }, 0);
        let random = Math.ceil(Math.random() * weightSum);
        console.log("random ---->" + random);
        let count = 0;
        for (let i = 0; i < vWeight.length; i++) {
            count += vWeight[i];
            if (random <= count) {
                return i + 1;
            }
        }
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章