Arrays
Michael R.
- javascript
0 Michael R.0 Michael R. II0 paul
Servus,
eine Frage zu folgendem Problem:
ich hab' ein Array wie folgt:
gut = new Array();
gut[0] = new Array();
gut[0][0] = 'test';
gut[0][1] = 'test';
gut[1] = new Array();
gut[1][0] = 'test';
gut[1][1] = 'test';
gut[2] = new Array();
gut[2][0] = 'test';
gut[2][1] = 'test';
...
Wie kann ich aus dem Array ein Element in der _Mitte_ des Arrays löschen?
Beispiel: Element 1 soll gelöscht werden (auch mit gut[1][0] und gut[1][1]) --> das Ergebnis soll dann sein, dass alles bis zum 1-er Element, also gut[0], und alles danach, also ab gut[2] gut[3] ..., erhalten bleibt. Die Array.Länge soll sich um 1 verringern.
Folgendes hab' ich schon probiert aber da wird immer das letzte Element im Array verdoppelt ?!
for (var i=0; i<gut.length; i++){
// for (var i in gut){
if (i != x){
var t = Temp.length;
Temp[t] = new Array();
Temp[t][0] = gut[i][0];
Temp[t][1] = gut[i][1];
}
}
x ist dabei die Nummer des zu löschenden Elements, also im Beispiel oben x = 1.
Meine Variationen -- die aber auch nicht klappten:
1. statt des 1. for(...) das zweit mit for (var i in gut) ..
2. statt dem Ausdruck mit den drei Zeilen Temp[...] = ...
nur geschrieben: Temp[...] = gut[...]
3. statt var t geschrieben: Temp[Temp.length] = ...
Und nun bin ich mit meinem Javascript-Latein am Ende !
Vielleicht weiß ja jemand eine Lösung -- schon mal herzlichen Dank !
Michael R.
Ergebnis: Element 3 wird z. B. gelöscht dann wird das letzte Element (sagen wir wenn ich 4 Elemente insgesamt hatte) doppelt aufgeführt.
Thnx für Eure Hilfe und einen schönen Tag !
Michael
Nachtrag:
folgender Teil der voriges vorigen Postings ist zuviel -- einfach wegdenken ;-)
Michael R.
Ergebnis: Element 3 wird z. B. gelöscht dann wird das letzte Element (sagen wir wenn ich 4 Elemente insgesamt hatte) doppelt aufgeführt.
Thnx für Eure Hilfe und einen schönen Tag !
Hier ein Ansatz.
Du musst ja vor dem löschen den Index des zu löschenden kennen.
Diesen mit allen Unterelementen(ab der zweiten Ebene) löschen.
Dann einfach den Rest des Arays durchlaufen, und jeweils den obersten Array Index um eins minimieren.
Zum Schluss den letzten Arrayeintrag löschen.
Fertig
Michael
Hallo,
Ich schätz Du sucht das hier http://selfhtml.teamone.de/javascript/objekte/array.htm#splice.
var a = new Array();
a[0] = "a";
a[1] = "b";
a[2] = "c";
a[3] = "d";
a[4] = "e";
alert(a.join(',')); //- mal schau'n
a.splice(2, 1); //- löscht 1 Element ab Index 2
alert(a.join(',')); //-
cu
paul