Pages

Min, max and co

Nous commençons par définir un immense tableau data de 50000 objets.
  1. const data = [];
  2. const random = (min, max) => Math.floor(Math.random() * (max - min)) + min;
  3. for (let i = 0; i < 50000; i++) {
  4.     data.push({ x: random(11000000) });
  5. }

Nous pouvons réduire le tableau à un objet contenant les valeurs 

  1. let {min, max, sum} = data.reduce(function( {max, min, sum}, {x}) {

  2.     min = Math.min(min,x);
  3.     max = Math.max(max,x);
  4.     sum = sum + x;
  5.     return { min, max, sum}
  6.  },
  7.  {min : Number.MAX_VALUE,
  8.  max : Number.MIN_VALUE,
  9.  sum : 0
  10.  });
  11. console.log( min, max, sum );


Autre

Nous utilisons ici la méthode map qui transforme le tableau d'objets en tableaux de valeurs

 
  1. const mapData = data.map(i => i.x);
  2. const maxData = Math.max(...mapData);
  3. const minData = Math.min(...mapData);