js下的计算器(考虑红包金额随机分配)

536 阅读1分钟


<input type="text" placeholder="输入红包金额" /><input type="text" placeholder="输入发给多少人" /><button id="giveMoney">发红包啦</button><button id="giveMan" onclick="giveMan(contentMoneyBox)">抢红包</button><p></p>

<script>
      var giveMoney = document.getElementById("giveMoney");
//按钮绑定发红包事件
      giveMoney.onclick = function() {
        //获取金额
        var money = parseFloat(document.getElementsByTagName("input")[0].value);
        //获取红包数量
        var muchMoney = parseInt(document.getElementsByTagName("input")[1].value);
        console.log("金额" + money + "数量" + muchMoney);
        //对金额进行判定
        moneyTest(money, muchMoney);
      };
//金额判定函数
      function moneyTest(money, muchMoney) {
        if (
          money == NaN ||
          money == null ||
          money == "" ||
          isNaN(money) ||
          muchMoney == NaN ||
          muchMoney == null ||
          muchMoney == "" ||
          isNaN(muchMoney)
        ) {
          alert("非法输入");
        } else if (money < muchMoney * 0.01) {
          alert("输入金额必须大于" + muchMoney * 0.01);
        } else {
          //当判断结果正确时,执行发红包;
          doMoney(money, muchMoney);
        }
      }
      var contentMoneyBox = [];
      function doMoney(money, muchMoney) {
        //定义一个第三方盒子
        var moneyBox = 0;
        //开始发红包
        for (var i = 0; i < muchMoney; i++) {
          moneyBox = parseFloat(
            (Math.random() * (money - (muchMoney - i - 1) * 0.01)).toFixed(2)
          );
          //遇到为0的时候
          if (moneyBox == 0) {
            moneyBox = 0.01;
          }
          //遇到最后一个值
          if (i == muchMoney - 1) {
            moneyBox = parseFloat(money.toFixed(2));
          }
          contentMoneyBox[contentMoneyBox.length] = moneyBox;

          money = money - moneyBox;
        }
        console.log("获得的红包分配金额"+contentMoneyBox);
        //随机获取红包金额
        //giveMan(contentMoneyBox, muchMoney);
      }
      var ManNum=1;
      function giveMan(contentMoneyBox) {
        //for (var ManNum = 0; ManNum < muchMoney; ManNum++) {
            //在数组中随机
          var index_ = Math.floor(Math.random() * contentMoneyBox.length);
          document.getElementsByTagName("p")[0].innerHTML +=
            "恭喜" + ManNum+ "玩家获得:" + contentMoneyBox[index_] + "元"+"<br>";
          //在数组中找到角标为index_这个值,并且删除;
          contentMoneyBox.splice(index_, 1);
          j++;
          if(contentMoneyBox.length==[]){
               alert("红包发完了!!!");
</script>