javascript - 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()
解决方案
在计算总分之前,请检查提供的输入是否为有效数字,如果是,请使用 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>
推荐阅读
- qliksense - qliksense : 在内部网站中嵌入 qlik 仪表板
- typescript - 我如何模拟 angular-auth-oidc 客户端以返回假数据
- mlflow - 运行初始创建后是否可以设置/更改 mlflow 运行名称?
- performance - Ubuntu 18.04 上的 Docker 容器中的进程运行缓慢
- html - 是什么导致我的 HTML 文件不加载我的 CSS?
- svg - SVG 动画标签导致不希望的放回
- python - Python Scrapy 返回不同的 url
- java - 程序 6 of 49 前 6 个不包含重复,第 7 个数字必须不是第 6 个中的一个
- node.js - 如何使用 nodeJS 将 DynamicsCRM 与 botframework v4 集成?
- python - 两个实例引用同一个对象问题