Return 函数参数与给定数字之间的差异,下边距有限
Return difference between function argument and given number with limited bottom margin
我这里有这段代码 (JavaScript),似乎我可以用一条指令重构它,也许使用模数 (%
)?
(注:n始终在0~6之间,其他情况无需处理)
switch (n) {
case 0:
return 1
case 1:
return 7
case 2:
return 6
case 3:
return 5
case 4:
return 4
case 5:
return 3
case 6:
return 2
}
我能做到:
if (n === 0) {
return 1
}
return (8 - n)
有没有更短的使用模符号的方法可以做到这一点?
我会使用条件运算符:
return n === 0 ? 1 : 8 - n;
更棘手的一个:return Math.max(8-n, 1)
,它也将涵盖底片
这是模数版本:
const inputs = [0, 1, 2, 3, 4, 5, 6];
function fn(x) {
return 7 - ((x + 6) % 7);
}
console.log(inputs.map(fn))
我这里有这段代码 (JavaScript),似乎我可以用一条指令重构它,也许使用模数 (%
)?
(注:n始终在0~6之间,其他情况无需处理)
switch (n) {
case 0:
return 1
case 1:
return 7
case 2:
return 6
case 3:
return 5
case 4:
return 4
case 5:
return 3
case 6:
return 2
}
我能做到:
if (n === 0) {
return 1
}
return (8 - n)
有没有更短的使用模符号的方法可以做到这一点?
我会使用条件运算符:
return n === 0 ? 1 : 8 - n;
更棘手的一个:return Math.max(8-n, 1)
,它也将涵盖底片
这是模数版本:
const inputs = [0, 1, 2, 3, 4, 5, 6];
function fn(x) {
return 7 - ((x + 6) % 7);
}
console.log(inputs.map(fn))