// pour un tableau simple
const t = [20, 12, 2, 12];
const [min, max] = t.reduce(([min, max], cur) => {
if (min > cur) min = cur;
if (max < cur) max = cur;
return [min, max];
}, [Number.MAX_VALUE, Number.MIN_VALUE]);
//tableau de pers
const etudiants = [
{ nom: "superA", note: 20 },
{ nom: "superB", note: 12 },
{ nom: "superC", note: 2 },
{ nom: "superD", note: 12 },
];
//retourne un tableau de valeurs
const [minE, maxE] = etudiants.reduce(([min, max], { note }) => {
if (min > note) min = note;
if (max < note) max = note;
return [min, max];
}, [Number.MAX_VALUE, Number.MIN_VALUE]);
//retourne un tableau de pointeurs
const [dernier, major] = etudiants.reduce(([dernier, premier], etudiant) => {
if (dernier.note > etudiant.note) dernier = etudiant;
if (premier.note < etudiant.note) premier = etudiant;
return [dernier, premier];
}, [etudiants[0], etudiants[0]]);
//retourne un objet
const { dernier, major } = etudiants.reduce(({ dernier, major }, etudiant) => {
if (dernier.note > etudiant.note) dernier = etudiant;
if (major.note < etudiant.note) major = etudiant;
return { dernier, major };
}, { dernier: etudiants[0], major: etudiants[0] });