我想在两个数字之间选择一个数字,具体取决于输入的百分比。可以说范围在40-60之间。输入范围在1到10之间。如果输入值为10,则输出应为60。值= 1,输出=40。值= 5,输出= 50。
我首先试图弄清楚算法,如何开始
到目前为止,我已经使用了各种不同的公式。 通常,要将变量x缩放到[a,b]范围内,可以使用: 标准化=(ba)x-min(x)max(x)-min(x)+ a
答案 0 :(得分:1)
因此,高阶函数可能在这里有用:
const func = (outMin, outMax, inMin, inMax) =>
v => outMin + (outMax - outMin) * (v - inMin) / (inMax - inMin);
const boundFunc = func(40, 60, 1, 10);
const v1 = boundFunc(1); //40
const v2 = boundFunc(5); //48.8888....
const v3 = boundFunc(10); //60
console.log(v1, v2, v3);