如何根据两个数字范围从0-1获得范围

时间:2018-07-30 11:53:57

标签: javascript

在Javascript中,当我滚动时,当scroll.x数在300-400之间时,我想得到0-1。

因此300将为0,然后400将为1,介于两者之间的值为0.1、0.2。 同时,我尝试尝试,并且也会发布我的尝试。

2 个答案:

答案 0 :(得分:2)

是的,您只需要一个简单的重新映射功能。

const remap = (
  value,
  sourceMin,
  sourceMax,
  destMin = 0,
  destMax = 1,
) =>
  destMin +
  ((value - sourceMin) / (sourceMax - sourceMin)) *
    (destMax - destMin);

console.log(remap(300, 300, 400));
console.log(remap(400, 300, 400));
console.log(remap(350, 300, 400));

输出

0
1
0.5

请注意,此函数不会将输出值限制在您指定的范围内;如果您指定了超出范围的输入,则会得到超出范围的输出。

答案 1 :(得分:0)

您可以减去起始值,然后除以100(两个值的差值),以获得介于0和1之间的值。

function f(x) {
    return (x - 300) / 100;
}

console.log(f(300)); // 0
console.log(f(350)); // 0.5
console.log(f(400)); // 1