首页 > 解决方案 > Javascript - 橄榄球积分计算器

问题描述

我只是处于 Javascript 的早期学习阶段,并且正在搞乱基本的函数/变量。我写了这个橄榄球点计算器,如果有人能给我关于如何改进它的提示,特别是在摆脱提示并改用参数时,我很感兴趣。

function calculateRugbyPoints (){

   tryTotalPoints = tries * tryPointValue;
   conversionTotalPoints = conversions * conversionsPointValue;
   penaltiesTotalPoints = penalties * penaltyPointValue;
   totalPoints = conversionTotalPoints + penaltiesTotalPoints + tryTotalPoints;
   return totalPoints;
}

var tries = prompt ("How many tries have been scored?");
var tries = parseInt (tries);
var tryPointValue = 5;

var conversions = prompt ("How many conversions have been scored?");
var conversions = parseInt (conversions);
var conversionsPointValue = 2;

var penalties = prompt ("How many penalties have been scored?");
var penalties = parseInt (penalties);
var penaltyPointValue = 3;

calculateRugbyPoints()

标签: javascriptcalculatorpoints

解决方案


在计算总分之前,请检查提供的输入是否为有效数字,如果是,请使用 parseInt 并将它们传递给 calculateRugbypoints 函数。

var calBtn = document.getElementById('calculateBtn');
    calBtn.addEventListener('click', calculatePoints, false);
    
    function calculatePoints() {
    	let tries = document.getElementById('tries'),
        	conversions = document.getElementById('conversions'),
          penalties = document.getElementById('penalties');
            
        tries = tries.value;
        conversions = conversions.value;
        penalties = penalties.value;
        
        if(!validNumber(tries) || !validNumber(conversions) || !validNumber(penalties)) return;
        console.log(calculateRugbyPoints(parseInt(tries,10), parseInt(conversions, 10), parseInt(penalties, 10)));
    }
    
    function calculateRugbyPoints (tries, conversions, penalties){
       let tryPointValue = 5;
       let conversionsPointValue = 2;
       let penaltyPointValue = 3;
       // Initializing more vriables to their computed values
       let tryTotalPoints = tries * tryPointValue;
       let conversionTotalPoints = conversions * conversionsPointValue;
       let penaltiesTotalPoints = penalties * penaltyPointValue;

       let totalPoints = conversionTotalPoints + penaltiesTotalPoints + tryTotalPoints;
       return totalPoints;
    }
    
    function validNumber(num) {
      return num && !isNaN(num) && Number(num) === parseInt(num, 10)
    }
<div>
    Enter Tries: <input id="tries" type="text">
</div>
<div>
    Enter Conversions: <input id="conversions" type="text">
</div>
<div>
    Enter Penalties: <input id="penalties" type="text">
</div>
<div>
    <button id="calculateBtn">
        calculate
    </button>
</div>


推荐阅读