首页 > 解决方案 > 给定数字的函数返回范围内的数字

问题描述

我正在尝试编写一个给定数字的函数,它返回 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。

标签: javascriptmodulo

解决方案


您可以对基于零的值使用调整并在最后添加调整。

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


推荐阅读