IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Effectuer une somme dans un objet de plusieurs objets


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2022
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2022
    Messages : 20
    Points : 17
    Points
    17
    Par défaut Effectuer une somme dans un objet de plusieurs objets
    Bonjour,

    Dans le code ci dessous, je besoin de récupérer le montant total d'une commande.

    J'ai un objet qui contient plusieurs objets.
    Il faut que je multiplie la "quantity" x "prix" de chaque articles puis que j'ajoute tous les résultats pour avoir le prix global.
    Le nombre d'article dans mon panier peut varier ainsi que la quantité de chaque articles.

    Nom : Code.jpg
Affichages : 143
Taille : 37,8 Ko

    Quelqu'un pour me mettre sur la bonne voie ?
    Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 395
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 395
    Points : 15 756
    Points
    15 756
    Par défaut
    la structure de votre objet est surprenante, à quoi correspondent les clés "1" et "3" ?

    avec une liste, vous pourriez faire une boucle comme cela :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    const panier = [
    	{
    		"nom" : `un produit`,
    		"prix" : 17.8,
    		"quantite" : 4,
    	},
    	{
    		"nom" : `2e produit`,
    		"prix" : 8,
    		"quantite" : 1,
    	},
     
    ];
     
     
    let somme = 0;
     
    panier.forEach(element => {
    	somme += element["prix"] * element["quantite"];
    });
     
     
    console.log(somme);

  3. #3
    Membre expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 889
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 889
    Points : 3 728
    Points
    3 728
    Par défaut
    Salut,

    Je te donne un exemple en supposant que ton objet se nomme "panier" * :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    let panier = {
        1: {
            id: 1,
            name: "Paillettes de spiruline",
            prix: 18,
            quantity: 1
     
     
        },
        3: {
            id: 3,
            name: "Paillettes de spiruline",
            prix: 50,
            quantity: 3
     
     
        }
    }
     
     
    let somme = 0
     
    for (let article in panier) {
        somme += panier[article].quantity * panier[article].prix       
    }
     
    console.log("La somme est :", somme);

    * EDIT : J'avais choisi "articles" comme nom au départ mais le nom choisi par Mathieu est meilleur...

  4. #4
    Membre expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 889
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 889
    Points : 3 728
    Points
    3 728
    Par défaut
    Je n'avais pas vu que Mathieu avait répondu, je laisse ma réponse quand même puisqu'elle est différente, cela permet de voir plusieurs façons de faire...

  5. #5
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 440
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 440
    Points : 4 942
    Points
    4 942
    Par défaut
    Bonjour,

    3éme solution :

    En combinant Array.map et Array.reduce et Object.values, vous pouvez faire comme suite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    let panier = {
        1: {
            id: 1,
            name: "Paillettes de spiruline",
            prix: 18,
            quantity: 1
     
     
        },
        3: {
            id: 3,
            name: "Paillettes de spiruline",
            prix: 50,
            quantity: 3
     
     
        }
    },
    somme= Object.values(panier)
      .map(el => el.quantity * el.prix)
      .reduce((acc, cur) => cur + acc, 0);
    console.log("somme:", somme);

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2022
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2022
    Messages : 20
    Points : 17
    Points
    17
    Par défaut
    Bonjour,

    Merci à vous 3 pour vos réponses.

    Bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Effectuer une somme si dans un état
    Par tyjez dans le forum IHM
    Réponses: 1
    Dernier message: 09/04/2019, 14h26
  2. Réponses: 5
    Dernier message: 02/07/2018, 13h18
  3. Effectuer la moyenne d'une somme dans un état
    Par Alien_psy dans le forum IHM
    Réponses: 3
    Dernier message: 23/02/2013, 12h03
  4. Réponses: 1
    Dernier message: 05/03/2010, 03h31
  5. effectuer une somme dans un etat
    Par pit88 dans le forum VBA Access
    Réponses: 2
    Dernier message: 29/08/2007, 13h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo