• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Problem mit split() - Funktion

Eric.Goe

New member
Hallo liebe Community,


ich habe ein kleines Problem mit der split() - Funktion,



Ich bin gerade an einer Stoppuhr dran zu programmieren,




wie bekomme ich immer den jeweiligen Stellenwert von der Stoppuhr ?



Code:
var timer = document.getElementById("timer").innerHTML;
			var time = new Array();
			time = timer.split(":");
			sec = time[2];
			min = time[1];
			std = time[0];

			/*if(sec == 12){
				sec = 00;
				min++;
			}*/
			document.getElementById("timer").innerHTML = time[2];


ich bekomme immer undefined....
 
Zuletzt bearbeitet von einem Moderator:
Wo bekommst du denn das undefined?

Beim timer.spilt(":")? Dann lass dir doch mal timer mittels console.log() ausgeben. Vermutlich ist das einfach schon undefined. Wenn dem so ist, gibt es denn ein Element mit der ID "timer"?
 
Wo bekommst du denn das undefined?

Beim timer.spilt(":")? Dann lass dir doch mal timer mittels console.log() ausgeben. Vermutlich ist das einfach schon undefined. Wenn dem so ist, gibt es denn ein Element mit der ID "timer"?

Ich bekam die Fehlermeldung "
Code:
too much recursion

also bei der Zeile wo ich string timer deklariere ...


ich kann aber bestätigen dass ein Paragraph gibt mit der ID "timer".
 
Zuletzt bearbeitet:
Was steht denn in der #timer-Element drin? Wenn da etwas mit weniger als zwei ":" drin steht, kann die STRING.split() Funktion natürlich nicht drei Elemente im Array erzeugen.
Wie oft rufst du die obere Funktionalität auf? Wenn du die nämlich nochmal aufrufst, hast du im .innerHTML nur noch die Sekunden drin - ohne irgendein ":" und dann greift wieder das gleiche.

PS: Den Array-Konstruktor sollte man nicht verwenden. Nutze lieber Arrayliterale. Aber bei dir ist die komplette Zuweisung unnötig da du in der Zeile drunter die Variable sowieso neu befüllst.
 
Was steht denn in der #timer-Element drin? Wenn da etwas mit weniger als zwei ":" drin steht, kann die STRING.split() Funktion natürlich nicht drei Elemente im Array erzeugen.
Wie oft rufst du die obere Funktionalität auf? Wenn du die nämlich nochmal aufrufst, hast du im .innerHTML nur noch die Sekunden drin - ohne irgendein ":" und dann greift wieder das gleiche.

PS: Den Array-Konstruktor sollte man nicht verwenden. Nutze lieber Arrayliterale. Aber bei dir ist die komplette Zuweisung unnötig da du in der Zeile drunter die Variable sowieso neu befüllst.

ich habe das Problem gefunden, man kann den Array irgendwie nicht auf eine andere Variable verlinken, ich benutze jetzt einfach Timer[.] funktioniert perfekt
 
Gut, dass es jetzt funktioniert. Aber ich weiß nicht, was du mit

genau meinst.


ich habe heraus gefunden dass der Array nur nummeric character enthält,

da die str.length() funktion, die ich nacher probiert habe, nicht funktioniert hat.


Dann habe ich

str.toString().length() gemacht und es ging, d.h. ich habe einfach den Array kurz in einen String gepackt um die Anzahl herauszubekommen


so einfach war es


MFG
 
Nur der Vollständigkeithalber: .length ist keine Funktion in JS, sondern eine Eigenschaft.

Wenn du .length() auf ein Array oder auf einen String packst, sollte auch ein JS Fehler fliegen. D.h. dein Code "str.toString().length()" dürfte so auch nicht funktionieren.
 
Zuletzt bearbeitet:
Nur der Vollständigkeithalber: .length ist keine Funktion in JS, sondern eine Eigenschaft.

Wenn du .length() auf ein Array oder auf einen String packst, sollte auch ein JS Fehler fliegen. D.h. dein Code "str.toString().length()" dürfte so auch nicht funktionieren.

bei mir gibt es zwar keine Probleme....
 
bei mir gibt es zwar keine Probleme....
Das kann nicht sein, außer du hast irgendein sehr seltsames Framework eingebunden...
Firefox Konsole schrieb:
23:40:56.903 "hallo".length()
23:40:56.909 TypeError: "hallo".length is not a function
Aber wenn "str" ein Array ist ("str" wäre dann ein extrem ungünstiger Name), ist str.toString().length auch nicht die Anzahl der Elemente im Array, sondern Anzahl * 2 - 1 (wenn die Zahlen alle einstellig sind - bei mehrstelligen stimmt das schon wieder nicht). Die Anzahl der Elemente bekommst du, wie schon rico gesagt hat, mit str.length direkt.

Mir ist aber immer noch nicht klar, was das mit "eine andere Variable verlinken" zu tun hat?
 
Das kann nicht sein, außer du hast irgendein sehr seltsames Framework eingebunden...
Aber wenn "str" ein Array ist ("str" wäre dann ein extrem ungünstiger Name), ist str.toString().length auch nicht die Anzahl der Elemente im Array, sondern Anzahl * 2 - 1 (wenn die Zahlen alle einstellig sind - bei mehrstelligen stimmt das schon wieder nicht). Die Anzahl der Elemente bekommst du, wie schon rico gesagt hat, mit str.length direkt.

Mir ist aber immer noch nicht klar, was das mit "eine andere Variable verlinken" zu tun hat?

ups, es ist keine Funktion, es ist eine Eigenschaft, die Klammern waren zu viel


Sorry Leut ;D



MFG
 
Zurück
Oben