我应该如何将输出从分钟转换为 HH:MM 格式?

Lar*_*sen 5 javascript

代码很简单,我对编程很陌生。您输入所需的积分和游戏结果,输出就是积分所需的游戏分钟数。

它有效,我的问题是如何将输出转换为 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)

Joh*_*ner 3

以下是我的处理方法。使用模数除以 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)