Warum ist das bei Loop Looping unendlich? [abgeschlossen]

Also mache ich eine Web-App für mein Studium, es verwendet grundsätzlich eine Kombination von Twitter's Streaming-API und Google Maps, um die Lat Lng-Werte anzuzeigen.

Y ist ein Element, das die Anzahl der empfangenen Tweets angibt (überprüft die Länge eines Arrays) und X ist ein anderer, der seinen Textinhalt um 1 Sekunde erhöht hat.

  • Ich habe nur einige zufällige Werte für die Zeit für sie zu nehmen, würde ich eine logischere Skala (alle 60 Sekunden oder etwas) verwenden.

Ich wollte diese Informationen jede Minute protokollieren, um einen Graphen zu machen, aber ich habe irgendwie eine Endlosschleife gemacht und ich bin mir nicht ganz sicher, wie

Hier ist der Code:

function saveinfo(){ var x = document.getElementsByClassName('timer')[0].textContent; var y = document.getElementsByClassName('counter')[0].textContent; while (x != "510"){ if(x = "5"){ console.log(y); } else if (x = "200") { console.log(y); } else if (x = "300"){ console.log(y); } else if (x = "400"){ console.log(y); } else if (x = "500"){ console.log(y); x = "510" } } }; 

  • Javascript-Speicher <select> Dropdown-Werte innerhalb des Arrays
  • JavaScript, während die Schleife die Option auswählen und die Option aus anderen Auswahlfeldern ausblenden kann
  • JQuery setTimeOut while Schleife
  • Wie schaffen Sie ewige Animation ohne Einfrieren?
  • Javascript, während Schleife
  • Merkwürdiges Ergebnis mit Rekursion mit while-Schleife
  • 3 Solutions collect form web for “Warum ist das bei Loop Looping unendlich? [abgeschlossen]”

    Wenn Ihre if Anweisungen ausgewertet werden, setzen Sie x :

     if(x = "5"){ 

    Dies bedeutet, dass x nie gleich "510" , und Ihre Schleife wird für immer weitergehen.

    Um dies zu beheben, solltest du so etwas machen wie if(x === '5')

    Drei Hauptgründe:

    • x ist eine lokale Variable, kein Hinweis auf den Inhalt des Elements. Wenn sich der Inhalt ändert, bleibt der Wert in x gleich.
    • = Ist der Zuweisungsoperator, nicht der Vergleichsoperator. Sie müssen == (oder besser, === ) zum Vergleich verwenden. Da x = "5" true ausgewertet wird, wirst du niemals an der ersten Stelle vorbeikommen.
    • Ihre Schleife verhindert, dass die Benutzeroberfläche trotzdem aktualisiert wird, da JavaScript standardmäßig Single-Threaded ist. Auch wenn du den Wert im Timer die ganze Zeit gelesen hast, anstatt das Lokal zu lesen, würde es sich immer noch nicht ändern.

    Ihre if / else-Anweisungen funktionieren nicht.
    Sie setzen ein, if(x = "200") anstatt if( x == "200") .
    In if / else Aussagen, if(x=1) funktioniert nicht.
    if(x==1) oder if(x=="1") immer funktionieren.
    if(x==="1") funktioniert nur, wenn x ein String ist, der "1" sagt.
    if(x===1) nur funktioniert, wenn x eine Zahl ist.

    Alles was Sie tun müssen, ändert sich die if(x="number") in if(x=="number")

    Lassen Sie uns Javascript Schönheit und nützlich machen.