2 votes

Obtenir une valeur particulière d'un tableau à partir d'un objet et faire la somme des valeurs.

J'ai le code suivant :

   if (this.places.length) {
    console.log(this.places);
    var myData = this.places.map(({ points }) => points);
    var myTotal = 0;  // Variable to hold your total

    for(var i = 0, len = myData.length; i < len; i++) {
        myTotal += myData[i][1];  // Iterate over your first array and then grab the second element add the values up
    }
    console.log(myTotal);
  }

J'ai un objet voir screenshot De cet objet, je dois extraire tous les tableaux et, à partir de ces tableaux, une valeur particulière, par exemple des points.

L'objectif principal est d'additionner et d'enregistrer tous les points dans une nouvelle variable. Le code d'abobe ne fonctionne pas.

5voto

Dacre Denny Points 17294

Si je comprends bien, vous voulez calculer le total de tous les points dans chaque Place contenu dans l'objet this.places et stocker le résultat dans une nouvelle variable myTotal - Une façon d'y parvenir serait d'utiliser reduce() :

if (this.places.length) {

    /* The total returned by reduce() will be stored in myTotal */
    let myTotal = this.places.reduce((total, place) => {    

        /* For each place iterated, access the points field of the 
        current place being iterated and add that to the current
        running total */
        return total + place.points;

    }, 0); /* Total is initally zero */

    console.log(this.places);
    console.log(myTotal);
}

0voto

Addis Points 87

Une autre option consisterait à utiliser la fonction forEach sur le tableau des lieux et à ajouter la valeur de la propriété points :

   if (this.places.length) {
    var myTotal = 0;  // Variable to hold your total

    places.forEach(place => myTotal = myTotal + place.points);
    console.log(myTotal);
  }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X