3 回答
TA贡献1785条经验 获得超4个赞
也许您正在寻找Math.floor
function getStage(km) {
return Math.floor(km / 2)
}
console.log(getStage(2));
// 1
console.log(getStage(10));
// 5
console.log(getStage(11));
// 5
TA贡献1841条经验 获得超3个赞
您可以将底值km除以2加1。
10 是上限。
function getStage(km) {
return Math.min((km >> 1) + 1, 10);
}
console.log(getStage(2.1)); // 2
console.log(getStage(3)); // 2
console.log(getStage(4)); // 4
TA贡献1827条经验 获得超9个赞
您可以使用数学来做到这一点。无需循环或条件。
请注意,您的输入间隔以2的“步长”增加,而输出以1的“步长”增加。这使我认为也许应该将km除以2。
由于我们总是想要一个整数答案,因此我们可以使用floor函数。
一些示例:
floor(3/2)= 1
floor(4.1 / 2)= 2
等等。
根据您要返回的极端情况(如果km = 2或km = 4或2的倍数是多少?),我们可以在此处完成操作。如果您希望在k = 4时返回1,在k = 6时返回2,依此类推,则需要做更多的工作。
*通常:*如果您正在处理数字,并且发现自己写了很多个案,则通常可以使用一些简单的数学运算符组合来计算结果。对于此类问题,请尝试考虑您的输入/输出对以及它们之间的关系。
添加回答
举报