Calculer somme valeur tableau javascript [Résolu]

Signaler
Messages postés
3
Date d'inscription
jeudi 12 novembre 2020
Statut
Membre
Dernière intervention
12 novembre 2020
-
Messages postés
3
Date d'inscription
jeudi 12 novembre 2020
Statut
Membre
Dernière intervention
12 novembre 2020
-
Bonjour à tous, je souhaite faire la somme des valeurs chiffrées d'un tableau javascript, j'ai un problème au niveau de la variable "total".

Pourriez vous m'aider s'il vous plait ?

Voici le code :



var prestation = [

["banniere", 100, 0],

["affiche", 40,30 ],

["illustration", 50, 0],

];

for (var i = 0; i < prestation.length; i++) {

var mont_presta = new Array();

mont_presta[i]= prestation[i][1] + prestation[i][2] +"<br>"

document.write( mont_presta[i] +"<br>" );

}

for(var j = 0 ; j < mont_presta.lenght; j++){

var total = 0;

total += (mont_presta[j]);}

document.write( total );

4 réponses

Messages postés
30123
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 novembre 2020
2 961
Bonjour,

Déjà, quand tu postes du code sur le forum, merci de le faire correctement.

Pour ça, il faut utiliser les balises de code.
Explications ( à lire ENTIEREMENT ! ) disponibles ici
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Ensuite,
Tu initialise ton array mont_presta
var mont_presta = new Array();

dans ta boucle FOR ... donc à chaque tour ... tu le réinitialise...

Déplace cette ligne de code AVANT le FOR et ça devrait déjà aller mieux.

Messages postés
3
Date d'inscription
jeudi 12 novembre 2020
Statut
Membre
Dernière intervention
12 novembre 2020

Veuillez m'excuser pour la présentation en tous merci beaucoup pour votre aide votre clairevoyance est précieuse.

Alors j'ai modifier mon code j'ai initialisé le tableau "mont_presta" et la variable "total" à l'extérieur de la boucle en effet il y a un changement avec la variable total qui ne m'affiche plus "undefined" cela me donne une succession de nombres qui sont les valeurs du tableau mais pas la somme de ses valeurs.

comment je pourrais faire pour l'obtenir s'il vous plait ?


var prestation = [
["banniere", 100, 0],
["affiche", 40,30 ],
["illustration", 50, 0],

];

var mont_presta = new Array();

for (var i = 0; i < prestation.length; i++) {

mont_presta[i]= prestation[i][1] + prestation[i][2] +"<br>";

document.write( mont_presta[i] +"<br>" );
}


var total = 0;

for(var j = 0 ; j < mont_presta.length; j++){

total = total + mont_presta[j];

}

document.write( total );
Messages postés
30123
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 novembre 2020
2 961
Tu n'as pas lu ENTIEREMENT le lien que je t'ai donné..... tu as oublié de préciser le LANGAGE dans les balises de code !!

Bref,
Ton code corrigé :
var prestation = [
   ["banniere", 100, 0],
   ["affiche", 40,30 ],
   ["illustration", 50, 0]
];

var mont_presta = new Array();

for (var i = 0; i < prestation.length; i++) {
  mont_presta[i]= parseFloat(prestation[i][1]) + parseFloat(prestation[i][2]) ;	
  document.write(  mont_presta[i] +"<br>" ); 
}
		
		
var total = 0;

for(var j = 0 ; j < mont_presta.length; j++){ 
  total += parseFloat(mont_presta[j]);
}

document.write( "Total = " + total );




Qui peut, plus simplement s'écrire comme ça
var prestation = [
   ["banniere", 100, 0],
   ["affiche", 40,30 ],
   ["illustration", 50, 0]
];

var total = 0;
for (var i = 0; i < prestation.length; i++) {
  var mont_presta = parseFloat(prestation[i][1]) + parseFloat(prestation[i][2]);
  document.write(  mont_presta +"<br>" ); 
  total += parseFloat(mont_presta);
}
document.write( "Total = " + total );
	

Messages postés
3
Date d'inscription
jeudi 12 novembre 2020
Statut
Membre
Dernière intervention
12 novembre 2020

J'ai lu le lien que vous avez indiqué, je prends note sinon votre apport de parseFloat change tout ! Merci infiniment, je vous en suis très reconnaissant.