TD min/max

 

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