J'ai lu une autre question concernant pour la boucle et j'ai proposé ce code calculant la moyenne et le Sommet de tous les éléments de la matrice, il semble y avoir quelque chose d'incorrect, aider serait apprécié.
P>
<!DOCTYPE html> <html> <body> <h2>JavaScript Loops</h2> <p id="demo"></p> </body> </html>
3 Réponses :
Vous utilisez deux types de boucles. Vous pouvez choisir un pour boucle , ou un pour ... de boucle: mais, une manière plus propre de faire cela consiste à utiliser Réduire code>: p>
var sum = elms.reduce((a, c) => a + c, 0);
var avg = sum / elms.length;
En deuxième boucle, devrait être somme + = e; code>
@wvteijlingen a juste essayé la ... de l'exemple de boucle que vous avez écrit mais ne fonctionne pas
Whoops, j'ai foiré le pour ... de code> boucle après copie et colle. Cela devrait fonctionner maintenant.
@wvteijlingen merci pour la réponse claire, tu veux savoir pourquoi je suis passé voté, ma question était claire, j'ai montré du code ...
Essayez le texte suivant
p>
var elmt = [0,1,2,3,4,7,8,9,10,11]; //Using reduce() function totalReduce(arr) { if(!Array.isArray(arr)) return; return arr.reduce((a, v)=>a + v); } //Using for loop function totalForLoop(arr) { if(!Array.isArray(arr)) return; let totalNumber = 0; for (let i=0,l=arr.length; i<l; i++) { totalNumber+=arr[i]; } return totalNumber; } // Using while loop function totalWhile(arr) { if(!Array.isArray(arr)) return; let totalNumber = 0, i=-1; while (++i < arr.length) { totalNumber+=arr[i]; } return totalNumber; } // Using array forEach function totalForEach(arr) { if(!Array.isArray(arr)) return; let sum=0; arr.forEach(each => { sum+=each; }); return sum; }; var sum = totalReduce(elmt); console.log( "Sum Using reduce: " + sum + " Average: " + sum/elmt.length ); sum = totalForLoop(elmt); console.log( "Sum Using totalForLoop: " + sum + " Average: " + sum/elmt.length ); sum = totalWhile(elmt); console.log( "Sum Using totalWhile: " + sum + " Average: " + sum/elmt.length ); sum = totalForEach(elmt); console.log( "Sum Using totalForEach: " + sum + " Average: " + sum/elmt.length );
<!DOCTYPE html> <html> <body> <h2>JavaScript Loops</h2> <p id="demo"></p> <script> var i; elmt=[] elmt[0] = 0; elmt[1] = 1; elmt[2] = 2; elmt[3] = 3; elmt[4] = 4; elmt[5] = 7; elmt[6] = 8; elmt[7] = 9; elmt[8] = 10; elmt[9] = 11; var sum = 0; for (let x of elmt) { sum += x; } var avg = sum/elmt.length; document.write( "The sum of all the elements is: " + sum + " The average is: " + avg ); </script> </body> </html> The assumption is that all the elements are numbers, other way you need a type checking to ignore NaN entries.
Vous utilisez
elmt [i] code> tout en calculant
somme code>. De plus, vous utilisez le même nom
somme code> comme variable de somme totale et dans
pour code> itérateur de boucle.
elmt [i] code> est
nan code>.
Pourquoi
elmt code> défini sans
var code> (ou
let code> /
const code>)? Et c'est un moyen vraiment compliqué d'ajouter les éléments à
elmt code> ->
var elmt = [0, 1, 2, 3, 4, 7, 8, 9, 10, 11]; / code> ferait la même chose.
@ user3132457
elmt [i] code> n'est pas
nan code>, c'est
non défini code> car
i code> est indéfini. Seulement
parseint (elmt [i], 10) code> sera
nan code>
@Andreas Voulez-vous savoir pourquoi j'ai voté, ma question était claire, j'ai montré du code ...
Pas mon DV, mais je devinerais que c'est la recherche manquante sur la façon dont les boucles fonctionnent et peut-être qu'il n'y a pas de conseils de débogage (pourquoi
i code> ou
elmt [i] code>
non défini code>?).
@Andreas mon erreur là-bas.