javascript - 给定数字的函数返回范围内的数字
问题描述
我正在尝试编写一个给定数字的函数,它返回 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。
解决方案
您可以对基于零的值使用调整并在最后添加调整。
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; }
推荐阅读
- spring - Jsoup 响应不像浏览器检查
- android - 无法解决:com.android.support:recyclerview-v7:28.1.1
- javascript - 在文本区域中,onchange 值未填充
- chat - Whatsapp 机器人(就像 Telegram 机器人一样)真的存在并且可以工作吗?
- javascript - laravel,将变量分配给模态的更简洁的方法
- c# - C#如何将数据库值获取到Datagridview组合框
- ruby-on-rails - 使用单独的数据库迁移设置 has_many_through rails 5
- android - 记录内存分配按钮不见了
- php - TYPO3 Gridelements 内容元素 - 列切换到“无效值(“-2”)”
- c++ - C++ 中严格的别名规则和类型别名