< Retour

scaleBetween()

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

Définition

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);
}

Utilisation

En reprenant les examples ci-dessus.
var value = [.2, .2, .8].scaleBetween(0, 1); // value[1] = 0
var value = [.2, .8, .8].scaleBetween(0, 1); // value[1] = 1