Diviser un nombre en parts proportionnelles (prorata) avec JavaScript

Concept et utilisation

La fonction numProrata() permet de diviser un nombre en parts proportionnelles (prorata).

Fonction

numProrata()

Retourne un objet de valeurs résultant d'un nombre à diviser au prorata de valeurs de référence.

Syntaxe
numProrata(nombre_a_diviser, valeurs_de_references]);
Paramètres
nombre_a_diviser(Number)

Le paramètre nombre_a_diviser de la fonction numProrata() définit le nombre à diviser au prorata des valeurs de référence.

valeurs_de_reference(Array)

Le paramètre valeurs_de_reference de la fonction numProrata() définit les valeurs de référence pour le calcul du nombre à diviser au prorata des valeurs.

Exemple de division d'un nombre par prorata

Exemple :
Un bonus de 3000€ disponible pour une équipe de 2 employés doit êdistribué en fonction de leur salaire respectif de 1500€ et 3000€.

var nombre_a_diviser = 3000; // montant du bonus
var valeurs_de_reference = [1500, 3000]; // salaire des employés

numProrata(nombre_a_diviser, valeurs_de_reference);

// renvoie : {1500: 1000, 3000: 2000}

Résultat :
Le premier employé dont le salaire est de 1500€ recevra une part du bonus de 1000€ et le second employé dont le salaire est de 3000€ recevra une part du bonus de 2000€.

Code source de la fonction

function numProrata(a, b) {
  a = Number(a);
  var t = 0, i, j, o = {};
  for (i = 0, j = b.length; i < j; i++) {
    b[i] = Number(b[i]);
    t = t + b[i];
  }
  for (i = 0, j = b.length; i < j; i++) {
    o[b[i]] = b[i] / (t / a);
  }
  return o;
}
^