Javascript 如何根据最小值和最大值之间的值计算宽度百分比?
我正在努力解决一个简单的问题。实现这一目标的优雅方式是什么 我有两个值最小值和最大值,可以是正或负,第三个值介于两者之间。现在我想计算其他给定的数字的Javascript 如何根据最小值和最大值之间的值计算宽度百分比?,javascript,Javascript,我正在努力解决一个简单的问题。实现这一目标的优雅方式是什么 我有两个值最小值和最大值,可以是正或负,第三个值介于两者之间。现在我想计算其他给定的数字的位置(百分比),在我的例子中,这是元素的宽度。 例如,在这里,我想找出在0-200范围内的位置是什么,代表在-500到600范围内的值-10 var min = -500; var max = 600; var value = -10; var width = 200; var positionInWidth = ???; 您可以只使用一行
位置(百分比)
,在我的例子中,这是元素的宽度。例如,在这里,我想找出在0-200范围内的位置是什么,代表在-500到600范围内的值-10
var min = -500;
var max = 600;
var value = -10;
var width = 200;
var positionInWidth = ???;
您可以只使用一行代码,但让我们分几个步骤来了解它的工作原理:
//首先我们得到总范围
变量长度=最大值-最小值;//1100
//然后我们用起始位置偏移位置
变量位置长度=值-最小值;//490
//现在我们通过位置中的值获得百分比
变量值百分比=位置长度/长度;
//或一个线性(最小值)/(最大值-最小值);
//最后,应用“宽度百分比”`
常量位置宽度=宽度*值百分比;
或作为一个班轮:
const positionInWidth=width*((value-min)/(max-min));
您可以使用一行程序来完成此操作,但让我们通过几个步骤来了解它的工作原理:
//首先我们得到总范围
变量长度=最大值-最小值;//1100
//然后我们用起始位置偏移位置
变量位置长度=值-最小值;//490
//现在我们通过位置中的值获得百分比
变量值百分比=位置长度/长度;
//或一个线性(最小值)/(最大值-最小值);
//最后,应用“宽度百分比”`
常量位置宽度=宽度*值百分比;
或作为一个班轮:
const positionInWidth=width*((value-min)/(max-min));
如果我正确理解了这个问题,那么您正在寻找所谓的map函数。如果是这种情况,则实现如下所示:
function map(input, inMin, inMax, outMin, outMax) {
return (input - inMin) * (outMax - outMin) / (inMax - inMin) + outMin;
}
在您的场景中,outMin=0:
console.log(map(-10, -500, 600, 0, 200)); // === 89.0909090909091
如果我正确理解了这个问题,您正在寻找所谓的map函数。如果是这种情况,则实现如下所示:
function map(input, inMin, inMax, outMin, outMax) {
return (input - inMin) * (outMax - outMin) / (inMax - inMin) + outMin;
}
在您的场景中,outMin=0:
console.log(map(-10, -500, 600, 0, 200)); // === 89.0909090909091