给定数字的函数返回范围内的数字

时间:2018-11-08 11:23:26

标签: javascript modulo

我正在尝试编写一个给定数字的函数,它返回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,那将不起作用,因为它将返回0。

3 个答案:

答案 0 :(得分:2)

您可以对从零开始的值进行调整,并在末尾添加调整项。

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; }

答案 1 :(得分:0)

也许是这样的:

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

答案 2 :(得分:0)

也可以想像-将数字的余数乘以12,并在余数为0的情况下返回12。

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

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