Ich versuche, eine angegebene Zeichenfolge, die in einzelne Zeichen aufgeteilt wurde durchlaufen und dann lesen Sie zurück Ticker-Band-Stil. Ich habe eine Funktion in einem setInterval, die einen Wortzähler inkrementieren soll, aber ich habe Schwierigkeiten, dies zu funktionieren, da ich den Zähler (eine ganze Zahl) nicht per Referenz in die Funktion senden kann. Ich habe die verschiedenen Seiten auf dieser Seite gelesen und andere über Pass-by-Value vs Pass-by-Referenz und ich kann es immer noch nicht zum Laufen bringen. Kann jemand helfen? Meine neueste Inkarnation ist unten - und es funktioniert nicht :(Looping durch ein Array mit Pass durch Verweis auf eine Funktion in Javascript
<!DOCTYPE html>
<html>
<body>
<span id="demo"></span>
<script>
myFunction();
function myFunction()
{
var str = "How are you/doing today?";
var res = str.split(""); // we now have an array of individual letters
// The "/" is intended to be a line break
var counter = { value: 0 }; // keeps track of where we are
myvar = setInterval(appendText, 250, res, counter); // Run every 250ms
if(counter.value > res.length) clearInterval(myVar); // when we read the end of the character array, stop the read out.
}
function appendText(res, c)
{
var addtext;
if (res[c.value] =="/")
{
addtext="<br/>";
}
else
{
addtext = res[c.value];
}
document.getElementById("demo").innerHTML+=addtext;
c.value++; // c is a counter that keeps track of where we are in the text string
}
</script>
</body>
</html>
Wenn 'c' ein Objekt ist, dann zugreifen, was is'res [c] 'sollen? Hast du vor, 'res [c.value]' zu schreiben? – UnholySheep
Sie vergleichen "counter" auch mit "res.length" anstatt "counter.value". – CollinD
Ah, danke für diese Kommentare, ich habe den Code entsprechend angepasst und es funktioniert besser, auch wenn ich jetzt die Ausgabe über das Ende des Zeichenarrays hinaus habe, oh Schatz! – user3713442