Supportnet Computer Supportnet Games Supportnet Kochen Explipedia
Login: guestBesucher online: 241
Supportnet Computerforum
SUPPORT
Home
Forum
Tipps & Infos
Blitz Angebote
Members
Hilfe
Video

TOP THEMEN
SSD Test
Alles über SSDs

Android Tipps
iPad Tipps
Google Tipps
Windows 8 FAQ
Windows 7 FAQ
E-Mail FAQ
Netzwerk FAQ
Festplatten FAQ
Datenrettung FAQ
Bildbearbeitung FAQ

Top iPhone Apps
Computer Einsteiger
Die 5 besten...
Explipedia
Themen
Direktlinks

Neue Einträge
News einsenden News einschicken
Tipps einsenden Tipp einschicken

SN-LINKS

Suche
Befreundete Seiten
Top Seiten

Supportnet/Forum/Skripte(PHP,ASP,Perl...)



Supportnet/Forum/Skripte(PHP,ASP,Perl...)
von Pseudonym vom 05.12.2017, 23:45 Diese Seite den Supportnet Favoriten hinzufügen  Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden


String in javascript ergibt undefined

 (162 Hits)

Hey,

kurze Frage:

warum ergibt folgender Beispielcode


	var tmp    = new String();
	var cnt, i = new Number();
	
	cnt = 0;
	tmp = "";
	
	for(i = 0; i < elem.length; i++){
	 if(i < elem.indexOf(" ")){
	  tmp[cnt] += elem[i];
	  alert(tmp[cnt]);
	  cnt++;


den Wert undefined?

Grüße in die Nacht


Antwort schreiben 50 Bonuspunkte

Antworten...
Antwort 1 von computerschrat vom 06.12.2017, 09:49 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo,

hast du elem irgendwo deklariert und auch initialisiert?

Außerdem fallen mit zwei geschweifte Klammern auf, die nicht geschlossen werden. Ich nehme aber an, dass die im nicht gezeigten Teil des Codes geschlossen werden..

Gruß
computerschrat


Antwort noch nicht bewertet Als gute Antwort bewerten
Diese Antwort hat mein Problem gelöst
Antwort 2 von Pseudonym vom 06.12.2017, 10:08 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hey,

sry, ich habe ja auch was vergessen. Das Ganze sieht so aus:


   function createNew(elem, attr = 0){
	var tmp    = new String();
	var cnt, i = new Number();
	
	cnt = 0;
	tmp = "";
	
	for(i = 0; i < elem.length; i++){
	 if(i < elem.indexOf(" ")){
	  tmp[i] += elem[i];
	  alert(tmp[i]);
	  cnt++;
	 }
	}
   }


Als Beispiel: elem hat den Wert "Hallo du da". Wenn ich alert(elem)
angebe, gibt er mir auch alle Zeichen aus.

Sowohl bei tmp[cnt] als auch bei tmp erscheint undefined. Dabei ist
tmp meines Verständnisses nach aber sowohl deklariert
(var tmp = new String()) als auch deklariert (tmp = "").


Antwort noch nicht bewertet
Antwort 3 von computerschrat vom 06.12.2017, 10:35 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo,

wenn du tmp als leeren String initialisierst, dann kannst du nicht auf tmp für i>0 zugreifen, weil das nicht existiert. Das tust du aber mit deiner Schleife, in der du elem zeichenweise nach tmo kopierst.

Ich habe zwar mit JS keine nennenswerte Erfahrung, aber ich denke, hier solltest du den String über concat erweitern.

Gruß
computerschrat


Antwort noch nicht bewertet Als gute Antwort bewerten
Diese Antwort hat mein Problem gelöst
Antwort 4 von tmp vom 07.12.2017, 11:49 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Also
var tmp = "";
alert(tmp);
gibt bei mir eine Leere Alert Box aus. Ohne meckern ohne alles.
Sollte also reichen.


Antwort noch nicht bewertet
Antwort 5 von computerschrat vom 07.12.2017, 13:22 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hallo,

das ist auch korrekt, der alert gibt die Variable innerhalb ihres definierten Bereichs aus. Und wenn der String leer ist, wird auch ein leerer String ausgegeben.
Wenn du aber auf das n+1 te Element eines Strings zugreifen möchtest, der nur n-Elemente hat, dann gibt es einen Fehler.
Der String hat nach der Zuweisung tmp="" die Länge 0 und du schreibst mit deiner Kopierschleife auf tmp[1]
Um Zeichen zu einen String hinzuzufügen, musst du die concat Funktion verwenden.

Gruß
computerschrat


Antwort noch nicht bewertet Als gute Antwort bewerten
Diese Antwort hat mein Problem gelöst
Antwort 6 von IchSchonWieder vom 07.12.2017, 13:29 Mißbrauch, Beleidigungen und Blödsinn den Moderatoren melden

Hey,

danke für die Antworten.

Nach meinem Verständnis ist die Konstruktion tmp = "" auch eine
Definition. Sie sagt einfach nur, dass tmp einen leeren Initialisierungswert
hat.

Daher sollte doch tmp = elem (i = 0) keinen Fehler ausgeben.

Habe meine Problem jetzt mittels tmp = elem.split(",") gelöst. Funktioniert
einwandfrei.


Antwort noch nicht bewertet




Antwort schreiben
    Bitte einen 'Nickname' wählen.
Nickname:*
    (eMail-Adresse wird nicht veröffentlicht.)
eMail:
Nachricht: Ich möchte bei Antworten benachrichtigt werden.
    Hilfe zur Beitragsformatierung gibts [hier]
                   
Antwort:*
  Die Nutzungsbedingungen habe ich gelesen und akzeptiert.

MACHEN SIE IHRE WEBSITE ATTRAKTIVER
Sie haben eine eigene Website und wollen Ihre Besucher auf den Supportnet-Service aufmerksam machen? Kopieren Sie einfach den Quellcode in Ihre Seite und jeder Besucher Ihrer Seite kann direkt auf die Supportnet-Datenbank zugreifen.

My Supportnet


SUCHE

Gruppen im Forum
Betriebsysteme
Software
Hardware
Netzwerk
Programmierung
Sonstiges

Impressum © 1997-2015 SupportNet
Version: supportware 1.8.230E / 18.10.2010, Startzeit:Fri Dec 8 16:26:13 2017