使一个值经过调整后向一个基础值靠近
主要针对两种应用情况:
情况1——例如:向1靠近,-7加上调整值10后应当得到结果1。(由于-7+10越过了1,则直接取1。)
情况2——例如:向0靠近,–3加上4后,取1。(由于1到0比-3到0的绝对值要更小)
代码
情况1:
function moveToBase_1(base,origin,adjust){
let result = origin+adjust;
if(origin<result?origin:result<=base && base<=origin<result?result:origin) return base;
else return result;
}
情况2:
function moveToBase_2(base,origin,adjust){
let result = origin+adjust;
return Math.abs(result-base)<Math.abs(origin-base)?result:origin;
}
综合一下就是:
function moveToBase(base,origin,adjust){
let result = origin+adjust;
if(Math.min(origin,result)<=base && base<=Math.max(origin,result)) return base;
else return Math.abs(result-base)<Math.abs(origin-base)?result:origin;
}