Algo JavaScript : Trier les élèves

Поділитися
Вставка
  • Опубліковано 28 гру 2024

КОМЕНТАРІ • 16

  • @jean-pierreledos1981
    @jean-pierreledos1981 2 роки тому +3

    Merci pour l'explication au top comme d'hab. 👍
    Petit challenge en plus pour appliquer : retourner chaque tableau de note trié croissant 😉
    { name: 'Sara', grades: [ 10, 12, 14, 14, 15, 19 ] },
    { name: 'Jack', grades: [ 10, 12, 14, 18, 20, 4 ] },
    { name: 'Ana', grades: [ 11, 12, 14, 14, 14, 3 ] },
    { name: 'Tom', grades: [ 1, 2, 3, 5, 7, 9 ] }

  • @yanDev
    @yanDev 2 роки тому

    Merci pour ce genre de vidéo Enzo! même si ce n'est pas évident pour les personnes un peu novice, ce sont des concepts qu'il faut effectivement maitriser notamment pour ceux qui souhaite bosser avec des Framework JS!
    Continue ce genre de vidéo, je pense qu'elles vont aider pas mal de monde à progresser!

  • @olivierabilio8470
    @olivierabilio8470 2 роки тому

    Merci pour cet exercice et l'explication très claire de la résolution.

  • @gautekillfr5344
    @gautekillfr5344 2 роки тому

    Le petit exercice du jour qui fait plaisir! Merci pour le taff ! :)

  • @mwlulud2995
    @mwlulud2995 7 місяців тому +1

    Le trie par insertion est bien pour une petite quantité de données mais sa complexité O (n²) asymptotique le rend quadratique ce qui le rends plus lent sur un grand tableau. C’est bizzare que la fonction sort() n’utilise pas des algos comme Quickshort ou fusion qui sont les plus rapide actuellement. De toute manières ont peut toujours optimisé le trie en stockant des moyennes déja calculé dans un tableau ( Mémoïsation) pour gagner du temps d’execution!

    • @mwlulud2995
      @mwlulud2995 7 місяців тому

      D’ailleurs tu as fais des études informatiques où tu as appris tout sur le tas? Quel est ton parcours ? J'adore tes vidéos 😉

  • @plexussolair7716
    @plexussolair7716 Рік тому +1

    Sur le dernier exemple je ne trouve pas comment console.log le résultat ( la fonction simplifiée ) ?

  • @Soukouna4252
    @Soukouna4252 2 роки тому

    Merci beaucoup

  • @emilie1977
    @emilie1977 2 роки тому

    merci ! super

  • @agnesbeaumatin8339
    @agnesbeaumatin8339 2 роки тому +1

    Bon ben moi je me suis compliquée la vie, comme d'habitude. J'ai ajouté une propriété moy aux objets et j'ai classé après :
    {
    "moy": 14,
    "name": "Sara",
    "grades": [10,12,14,15,14,19 ]
    }
    Et comme j'ai pas utilisé reduce, ça fait juste 15 lignes de trop !!!!! :)
    Voici ma logique tordue :
    const students = [
    { name: "Tom", grades: [1, 3, 5, 9, 2, 7] },
    { name: "Jack", grades: [20, 4, 18, 10, 14, 12] },
    { name: "Ana", grades: [11,14,3,14,12,14] },
    { name: "Sara", grades: [10,12,14,15,14,19] },
    ]
    function average(nums) {
    let average = 0;
    for(const num of nums) {
    average += num/nums.length;
    }
    return average;
    }
    function sortedStudents(arr) {
    let newArr = []
    arr.forEach(student => {
    const averageS = (average(student.grades))
    const studentsObj = Object.assign({moy: averageS}, student)
    newArr.push(studentsObj)
    console.log(newArr.sort((a,b) => b.moy - a.moy));
    return newArr.sort((a,b) => b.moy - a.moy)
    })
    }
    sortedStudents(students)

    • @noylozne
      @noylozne 2 роки тому

      L'algo de base est bien s'il y a peu d'élève, mais il vaut mieux utiliser un pré-calcul et stockage de la moyen comme tu le proposes s'il y a beaucoup de donnée :
      const sortedStudents = arr => {
      arr.forEach(a => a.moy = a.grades.reduce((acc, cur) => acc + cur) / a.grades.length);
      arr.sort((a, b) => b.moy - a.moy);
      arr.forEach(a => delete a.moy); // pour effacer toute traces :)
      return arr;
      };

  • @theomrt
    @theomrt 2 роки тому

    Pour moi qui n'ai pas trop l'habitude de coder en JavaScript, ça m'a fait un peu beaucoup d'informations d'un coup.
    Entre les reduce, sort et fonctions fléchées, j'ai du mal à bien tout saisir

    • @EcoleduWeb
      @EcoleduWeb  2 роки тому

      Courage, ça fait du bien d'être perdu parfois 👍

  • @Faranix
    @Faranix 2 роки тому

    Merci pour l'exo voici mon algo
    Voir plus = spoil
    *
    *
    *
    *
    *
    *
    *
    function sortedStudents(arr) {
    return arr.sort((a, b) => {
    const moyenneCurrent = b.grades.reduce((old, current) => old + current, 0);
    const moyenneOld = a.grades.reduce((old, current) => old + current, 0);
    return moyenneCurrent < moyenneOld ? -1 : 1;
    })
    }

  • @marcelehuyambianguessan5510
    @marcelehuyambianguessan5510 7 місяців тому

    Il lira ce genre de choses🤣🤣🤣🤣🤣

  • @filouDcode
    @filouDcode 2 роки тому +1

    Excellent exercice d'algo.... mais je sais pas si le plus difficile c'est de suivre ton raisonnement ou t'as diction supersonique 😢😅