ERLEDIGT
JA
JA
ANTWORTEN
4
4
ZUGRIFFE
742
742
EMPFEHLEN
-
04.08.07 13:08 #1
Mitglied Gold
- Registriert seit
- Apr 2005
- Beiträge
- 125
Liebe Freunde,
Ich habe folgendes Problem.
Ich habe ein zweidimensionales Array das auch leere Zellen enthält. Ich möchte die Leere Zellen aus dem Array entfernen.
Dafür habe folgende Schleife:
Wenn ich das Array Brr, nach dem aussortieren der leeren Zellen, ausgebe. Enthält immer noch die leere Zellen genau so wie das Array Arr.HTML-Code:Arr = [[3,'A'],[],[2,'B'],[],[3,'C'],[4,'D'],[],[],[],[],[6,'E']]; var Brr = new Array(); for(var i=0; i<Arr.length; i++){ Brr[i] = new Array(1); if(Arr[i][0]!='' && Arr[i][1]!=''){ Brr[i][0]=Arr[i][0]; Brr[i][1]=Arr[i][1]; } }
Warum
Geändert von pchilfe (04.08.07 um 13:14 Uhr)
pchilfe :-)
-
04.08.07 13:31 #2...du erzeugst das neue Array-Element bereits bevor du prüfst, ob das dazugehörige Äquivalent leer ist.Code :
1
Brr[i] = new Array(1);
So sollte es besser gehen:
Code :1 2 3 4 5 6 7 8 9 10 11
Arr = [[3,'A'],[],[2,'B'],[],[3,'C'],[4,'D'],[],[],[],[],[6,'E']]; var Brr = new Array(); for(var i=0; i<Arr.length; i++){ if(Arr[i][0]!='' && Arr[i][1]!=''){ Brr[i] = new Array(1); Brr[i][0]=Arr[i][0]; Brr[i][1]=Arr[i][1]; } }
-
04.08.07 16:43 #3
Mitglied Gold
- Registriert seit
- Apr 2005
- Beiträge
- 125
Hallo,
Das habe ich Propiert aber funktioniert nicht, weil die For-Scfleife angehalten wird.
Das Array das ich bearbeiten möchte sieht so aus:
Aus dem Array Produkte muss ich bestimmte Produkte wählen und ausgeben:HTML-Code:Produkte[0]='N*m*71835*Produkt1*665925*DE*23*0*0*0*0'; Produkte[1]='O*m*164*Produkt2*6787*DE*19*0*0*0*0'; ....... Produkte[39]='O*f*199*Produkt39*6689583*DE*19*0*0*0*0';
Zum Beispiel: Produkt-ID und Produkt-Name.
Mein Problem ist mit der Anweisung: Prr[i] = new Array(1);HTML-Code:var Prr = new Array(); for(var i=0; i<Produkte.length; i++){ var ArrString = Produkte[i].split('*'); switch(ArrString[1]){ case 'f': // hier wird die Schleife angehalten. Verstehe ich nicht warum? if(ArrString[0]=='N'){ Prr[i] = new Array(1); Prr[i][0]=ArrString[6]; Prr[i][1]=ArrString[2]+':'+ArrString[3]; } else{ Prr[i] = new Array(1); Prr[i][0]=ArrString[6]; Prr[i][1]=ArrString[2]+':'+ArrString[3]; } break; } }
Wenn ich die Anweisung direkt nach der For-Schleife schreibe, wird ein 2dim Array erzeugt das auch leere Zellen enthält. Wenn ich die Anweisung: Prr[i] = new Array(1); direkt nach der IF-Bedingung mache, wird die Schlefe nach dem ersten case angehalten?
Ich weiss nicht was ich tun soll
?
Bitte um Hilfe .. vielen Dank im Vorraus.Geändert von pchilfe (04.08.07 um 17:38 Uhr)
pchilfe :-)
-
04.08.07 18:02 #4
Moderator
- Registriert seit
- Feb 2004
- Beiträge
- 3.475
Hi,
das Problem dürfte die Zählvariable i sein. Diese wird in jedem Durchlauf erhöht, das Array Prr muss
jedoch nur bei einem "Treffer", dh. einem f eine neue Komponente erhalten.
Du könntest eine extra Zählvariable für das Prr-Array mitlaufen lassen.
Zudem habe ich die Eins zum Dimensionieren des Arrays herausgenommen - wie schon von Sven angedeutet.Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
var Prr = new Array(); [B]var intIndex = 0;[/B] for(var i=0; i<Produkte.length; i++){ var ArrString = Produkte[i].split('*'); switch(ArrString[1]){ case 'f': // hier wird die Schleife angehalten. Verstehe ich nicht warum? if(ArrString[0]=='N'){ Prr[[B]intIndex[/B]] = new Array(); Prr[[B]intIndex[/B]][0]=ArrString[6]; Prr[[B]intIndex[/B]][1]=ArrString[2]+':'+ArrString[3]; } else{ Prr[[B]intIndex[/B]] = new Array(); Prr[[B]intIndex[/B]][0]=ArrString[6]; Prr[[B]intIndex[/B]][1]=ArrString[2]+':'+ArrString[3]; } [B]intIndex++;[/B] break; } }
Ciao
QuaeseVielleicht muss man manchmal vom Weg abkommen, um nicht auf der Strecke zu bleiben!
----
Der "Fortsetzungsroman" auf www.leuteforum.de
New kind to realize large scalable projects with jQuery: jQuery SDK
-
04.08.07 18:08 #5
Mitglied Gold
- Registriert seit
- Apr 2005
- Beiträge
- 125
Ja genau. Jetzt funktioniert alles wieder.
sehr gut.
Vielen Vielen Dank.pchilfe :-)
Ähnliche Themen
-
[perl] Vorhandes Array [Name;Vorname/n] in zweidimensionales Array splitten
Von FlockY im Forum CGI, Perl, Python, Ruby, Power ShellAntworten: 3Letzter Beitrag: 31.08.09, 18:53 -
jxl: Leere Zellen
Von joergh2 im Forum JavaAntworten: 0Letzter Beitrag: 27.05.09, 08:59 -
leere Zellen von SQL nicht ausgeben
Von grazioli im Forum PHPAntworten: 9Letzter Beitrag: 13.03.09, 17:14 -
Javascript zweidimensionales Array sortieren
Von pchilfe im Forum Javascript & AjaxAntworten: 4Letzter Beitrag: 03.08.07, 12:57 -
Leere Zellen in JTable
Von dadon511 im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 2Letzter Beitrag: 03.04.07, 11:56




Zitieren
Login