我有一个变化的数字 0-100,
现在我需要将其转换为 20-60 范围,
所以当我有 0 时,它将是 20,依此类推...
我该怎么办?
最佳答案
比例因子为(newMax - newMin)/(prevMax - prevMin)
。您还需要沿着数轴移动 newMin - prevMin
function generateScaleFunction(prevMin, prevMax, newMin, newMax) {
var offset = newMin - prevMin,
scale = (newMax - newMin) / (prevMax - prevMin);
return function (x) {
return offset + scale * x;
};
};
使用
var fn = generateScaleFunction(0, 100, 20, 60);
fn( 0); // 20
fn( 25); // 30
fn( 50); // 40
fn( 75); // 50
fn(100); // 60
// please note you are not guaranteed an int
fn(1); // 20.4
关于javascript - 使用 javascript 将数字更改为范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36387135/