js实现微信抢红包

金额随机:额度在0.01和(剩余平均值*2)之间。

/** * 抢红包 * @param {[number]} totalAmount [总金额] * @param {[number]} totalPeople [总人数] * @return {[Array]} [每个人抢到的金额] */
function assign(totalAmount, totalPeople){
    var remainAmount = +totalAmount;
    var remainPeople = +totalPeople;
    var arr = [];
    while(remainPeople > 0){
        let num = scramble(remainAmount, remainPeople);
        remainAmount = remainAmount - num;
        remainPeople--;
        arr.push(num);
    }
    return arr;
}
function scramble(remainAmount, remainPeople){
    if(remainPeople === 1){
        return +remainAmount.toFixed(2);
    }
    let max = ((remainAmount / remainPeople) * 2 - 0.01).toFixed(2);
    let min = 0.01;
    let range = max - min;
    let rand = Math.random();
    let num = min + Math.round(rand * range); //四舍五入
    return num;
}
点赞