给定一个数字的函数 returns 一个范围内的数字

Function that given a number returns the number within a range

我正在尝试编写一个给定数字的函数,它 return 是 1 到 12 范围内的数字。

因此,例如,如果输入为1,则输出为1,如果输入为12,则输出为12,如果输入为13,则输出为1,如果输入为14,则输出为2,如果输入为24,则输出为12.

到目前为止我已经试过了:

function toRange(number) {
  if (number > 12) { 
    return number % 12
  }

  return number
}

但我想知道是否有一种方法可以在不执行条件的情况下解决这个问题。我想过做 return (number + 12) % 12,但是如果 number 是 12 那将不起作用,因为它会 return 0.

您可以对基于零的值进行调整,并在末尾添加调整。

function toRange(number) {
    return (number - 1) % 12 + 1;
}

var i;

for (i = 1; i <= 24; i++) console.log(i, toRange(i));
.as-console-wrapper { max-height: 100% !important; top: 0; }

可能是这样的:

function toRange(number) {
  if (number > 12) { 
    if (number % 12 === 0)
      return number - 12;
    return number % 12
  }
  return number
}

也可以这样想 - 取数除以 12 的余数,如果余数为 0,则取 12 return。

function toRange(number) {
    return number % 12 || 12;
}

for (var i = 1; i <= 24; i++) console.log(i, toRange(i));