代码很简单,我对编程很陌生。您输入所需的积分和游戏结果,输出就是积分所需的游戏分钟数。
它有效,我的问题是如何将输出转换为 HH:MM 格式?我尝试过 if/else 循环,但工作量很大,更不用说它非常原始且硬编码。for 循环是答案吗?我应该从头开始吗?
先感谢您!
function passPoints(input) {
let gameResult = String(input[0]);
let pointsNeeded = Number(input[1]);
let pointsPerMinute = 0;
if (gameResult == 'w') {
pointsPerMinute = 6;
} else if (gameResult == 'l') {
pointsPerMinute = 4;
}
let minutesOfGameplayNeeded = pointsNeeded / pointsPerMinute;
console.log(minutesOfGameplayNeeded)
}
Run Code Online (Sandbox Code Playgroud)
以下是我的处理方法。使用模数除以 60 即可得到 h:m
// as a helper function
const getTimeReadout = m => {
let a = [Math.floor(m / 60), Math.floor(m % 60)]
return a.map(t => ('0' + t).slice(-2)).join(':')
}
Run Code Online (Sandbox Code Playgroud)
这里它被集成到您的代码中:
// as a helper function
const getTimeReadout = m => {
let a = [Math.floor(m / 60), Math.floor(m % 60)]
return a.map(t => ('0' + t).slice(-2)).join(':')
}
Run Code Online (Sandbox Code Playgroud)
同样的事情,但我稍微优化了你的代码:
function passPoints(input) {
let gameResult = String(input[0]);
let pointsNeeded = Number(input[1]);
let pointsPerMinute = 0;
if (gameResult == 'w') {
pointsPerMinute = 6;
} else if (gameResult == 'l') {
pointsPerMinute = 4;
}
let m = pointsNeeded / pointsPerMinute
let minutesOfGameplayNeeded = [Math.floor(m / 60), Math.floor(m % 60)];
// now it's in an array so we can iterate it below (adding the zero if needed)
minutesOfGameplayNeeded = minutesOfGameplayNeeded.map(t => ('0' + t).slice(-2)).join(':')
console.log(minutesOfGameplayNeeded)
}
passPoints(['w', 427]);Run Code Online (Sandbox Code Playgroud)