Permet de rapporter une valeur (par exemple .5) comprise entre 2 valeurs données (par exemple de .2 à .8) à une autre échelle (typiquement de 0 à 1).
Exemples :
- sur une échelle de .2 à .8, la valeur .2 vaut 0 si on la rapport à une échelle de 0 à 1
- sur une échelle de .2 à .8, la valeur .8 vaut 1 si on la rapport à une échelle de 0 à 1
Array.prototype.scaleBetween = function (scaledMin, scaledMax) {
var max = Math.max.apply(Math, this);
var min = Math.min.apply(Math, this);
return this.map(num => (scaledMax - scaledMin) * (num - min) / (max - min) + scaledMin);
}
var value = [.2, .2, .8].scaleBetween(0, 1); // value[1] = 0
var value = [.2, .8, .8].scaleBetween(0, 1); // value[1] = 1