Topic de El-Other60 :

[JavaScript] un khey pour m'expliquer ça?

Je fait ce cours pour essayer de comprendre un peu le JS https://openclassrooms.com/fr/courses/6175841-apprenez-a-programmer-avec-javascript/6279223-travaillez-sur-les-parametres-et-les-valeurs-de-retour

Mais j'ai rien compris à la pratique, en regardant la solution je vois

const calculateAverageRating = (ratings) => {

  if(ratings.length === 0) {
    return 0;
  }
  
  let sum = 0;
  for (let rating of ratings) {
    sum += rating;
  }
  
  return sum / ratings.length;

}

Et je comprends absolument rien :hap: un khey pourrait m'expliquer? :(

Tu as un fonction nommée "calculateAverageRating", qui lorsqu'elle est appelée quelque part dans le code reçoit un paramètre, ici "ratings", qui je l'imagine est une liste de rating.

Premier test (le "if"), regarde si cette liste est vide, si oui, la fonction s'arrête (ne passe pas dans les lignes suivantes et retourne "0" comme résultat.

Si elle n'est pas vide, la fonction continue son exécution. Une variable "sum" est déclarée et initialisée à zéro.
La boucle "for" permet de parcourir tous les éléments de ta liste "ratings" pour ajouter chaque rating contenu dans la liste dans la variable "sum".

Finalement, tu obtiens une certaine valeur dans "sum". Cette valeur est divisée par la taille de ta liste pour obtenir la moyenne.

C'est comme si ta liste "ratings" contenait :
15, 16, 10, 12, 14 comme "rating"

"sum" contient au total l'addition de tout celà, soit 67
et donc tu termines par 67 / 5 = 13.4 de moyenne

const calculateAverageRatingReduce = (ratings) => {
  if(!ratings.length) {
    return 0;
  }
  return ratings.reduce((a, r) => a + r, 0) / ratings.length;
}

Plus propre. :ok:

En one-liner :

const s=e=>e.length?e.reduce((e,n)=>e+n,0)/e.length:0;

Utilisation :

s([0, 10]);
AYAAAA Iterer je pense qu'il voulait comprendre tranquillement sa fonction, là il a dû tomber dans les pommes avec ce que tu lui proposes :rire:

Le 20 août 2020 à 16:47:03 Iterer a écrit :
En one-liner :

const s=e=>e.length?e.reduce((e,n)=>e+n,0)/e.length:0;

Utilisation :

s([0, 10]);

Wow :o
Tu es un web dev ?

Le 20 août 2020 à 16:51:47 Pytha_Gor1 a écrit :

Le 20 août 2020 à 16:47:03 Iterer a écrit :
En one-liner :

const s=e=>e.length?e.reduce((e,n)=>e+n,0)/e.length:0;

Utilisation :

s([0, 10]);

Wow :o
Tu es un web dev ?

Fullstack 2/3 compétences fortes et d'autres moins bonnes.

Le 20 août 2020 à 16:56:43 Iterer a écrit :

Le 20 août 2020 à 16:51:47 Pytha_Gor1 a écrit :

Le 20 août 2020 à 16:47:03 Iterer a écrit :
En one-liner :

const s=e=>e.length?e.reduce((e,n)=>e+n,0)/e.length:0;

Utilisation :

s([0, 10]);

Wow :o
Tu es un web dev ?

Fullstack 2/3 compétences fortes et d'autres moins bonnes.

Je veux web dev très rapidement, j'ai pas le temps de devenir expert JS, ça suffit si je go framework React directement ? Les concepts ont l'air simple, y'a de bons cours sur (pirate) Udemy :)

Le 20 août 2020 à 17:08:29 Pytha_Gor1 a écrit :

Le 20 août 2020 à 16:56:43 Iterer a écrit :

Le 20 août 2020 à 16:51:47 Pytha_Gor1 a écrit :

Le 20 août 2020 à 16:47:03 Iterer a écrit :
En one-liner :

const s=e=>e.length?e.reduce((e,n)=>e+n,0)/e.length:0;

Utilisation :

s([0, 10]);

Wow :o
Tu es un web dev ?

Fullstack 2/3 compétences fortes et d'autres moins bonnes.

Je veux web dev très rapidement, j'ai pas le temps de devenir expert JS, ça suffit si je go framework React directement ? Les concepts ont l'air simple, y'a de bons cours sur (pirate) Udemy :)

React/Angular honnêtement c'est good.

calcul de moyenne khey, cependant tellement optimisable de x façon differente que ça fait mal au coeur que c'est présent sur un tuto

Le 20 août 2020 à 19:09:59 Dupons a écrit :
Quel enfer le js

Pour ça Angular au moins c'est du ts (c'est pas ouf mais c'est mieux) :(

Le 20 août 2020 à 19:10:37 Dontrajx a écrit :
calcul de moyenne khey, cependant tellement optimisable de x façon differente que ça fait mal au coeur que c'est présent sur un tuto

Tu commences pas par des algo récursif quand tu commences à coder :hap:

Vu le code que tu ne comprends pas, ce n'est pas JS le souci, mais tes bases en algorithmique.
Pas la peine d'apprendre un langage si tu ne sais pas programmer en pseudo-code.

Le 20 août 2020 à 19:13:34 Flo318 a écrit :
Vu le code que tu ne comprends pas, ce n'est pas JS le souci, mais tes bases en algorithmique.
Pas la peine d'apprendre un langage si tu ne sais pas programmer en pseudo-code.

+1

Le 20 août 2020 à 16:47:03 Iterer a écrit :
En one-liner :

const s=e=>e.length?e.reduce((e,n)=>e+n,0)/e.length:0;

Utilisation :

s([0, 10]);

Propre. Surement pas compatible avec IE par contre le reduce.

Le 20 août 2020 à 19:09:59 Dupons a écrit :
Quel enfer le js

Mais tellement +1 :(


static int calculerMoyenne(int[] liste){
    int note=0;
    int l=liste.length();
    if(l==0){
        return 0;
    }
    for(int i=0;i<l;i++){
        s+=liste[i];
    }
    return s/l;
}

Une solution en Java.

La fonction prend en paramètre un tableau de liste de notes par exemples, calcule la somme de toute les notes et renvoie la moyenne générale, aussi simple que ca.

Comme tu peux le voir, le java est beaucoup plus élégant que le javascript

Données du topic

Auteur
El-Other60
Date de création
20 août 2020 à 16:19:31
Nb. messages archivés
24
Nb. messages JVC
24
En ligne sur JvArchive 318