Javascript for-of schleife ergebnise mit einander rechnen?
Hey,
folgendes: Ich möchte einen notendurchschnitt berechner bauen. Nun habe ich folgendes Problem: Ich trage die Noten in eine Tabelle ein. Mit einer for-of schleife tu ich drüber etarieren. Nur jetzt weiß ich nicht, wie ich die ganzen Zahlen zusammen rechnen soll.
Hier der Code:
let noten = e.target.parentNode.querySelectorAll(".noten");
for(let note of noten.values()){
if(note.value != 0){
console.log(note.value);
// Problem: Alle Noten miteinander verrechnen
}
}
2 Antworten
In dem du noch eine Variable erstellst und dort den Wert drin speicherst.
let avg = 0;
..... dein loop ..... avg+=note.value
avg = avg/noten.length
oder so ähnlich
solllte dir die richtige Richtung zeigen
Ich bekomme die Noten immer einzeln. Bei meinem console.log werden die Noten alle einzeln ausgegeben. Diese Noten muss ich iwie erster zusammen rechnen, um dann /length machen zu können.
Wenn ich diesen Code hinzufügen :
let durchschnitt = e.target.parentNode.querySelectorAll(".noten");
for(let note of durchschnitt.values()){
if(note.value != 0){
console.log(note.value);
let avg;
avg += note.value;
console.log(avg);
}
}
Bekomme ich bei einem console.log undefined und dahinter die Zahl, aber nicht zusammengerechnet
Das let Avg kommt auch außerhalb der Schleife und nicht da drin. Du willst doch, dass die variable außerhalb der Schleife noch aufrufbar ist.
Ja, macht aber immer noch kein unterschied. Bekomme immer noch undefined und die Zahl dahinter
poste mal den gesamten code, dass ich das mal ausprobieren kann.
Ok, hier der google Drive link:
https://drive.google.com/drive/folders/1q7mldPlXNavGIW8_IzfSxieFct7f1VYt?usp=sharing
Du musst nur unter JS > classes auf Notehinzufügen und dann die zweite methode, da ist der code.
Achtung: Öffne die index html via server, sonst klappt es nicht. Ich mache es immer mit live server
Der Ordner ist nicht freigegeben. Du musst meinen Zugriff akzeptieren oder die Zugriffrechte ändern.
zwei zusatzvariablen einführen
notencounter
notensumme
-----
notencounter = notencounter + 1;
notensumme = notensumme + note.value;
am ende dann:
if notencounter <> 0
notendurchschnitt = notensumme / notencounter;
Wenn ich diesen Code hinzufügen :
let durchschnitt = e.target.parentNode.querySelectorAll(".noten");
for(let note of durchschnitt.values()){
if(note.value != 0){
console.log(note.value);
let avg;
avg += note.value;
console.log(avg);
}
}
Bekomme ich bei einem console.log undefined und dahinter die Zahl, aber nicht zusammengerechnet
Ja, das mit / length hatte ich auch vor, aber es kommt immer eine note dazu, aus diesem Grund weiß ich nicht wie ich es mit der var machen soll. Also die noten in der var speichern