# Index nachträglich ändern



## Lobalo (4. Jul 2020)

Moin,

mein Problem bezieht sich unter Verwendung von JavaScript, aber sollte auch für Java gelten. 

Ich erstelle dynamisch Items die aus Text und Icons bestehen. Den Icons werden Funktion fürs löschen und ändern der Items übergeben. Die Daten der Items werden über eine Liste gespeichert und über einen Index referenziert. Nachdem ich ein Item gelöscht haben, müssten jedoch die Indexe der nachfolgenden Items um eins verringert werden, sodass ich beim Löschen der Daten aus der Liste auch das richtige Element "erwische"  Ich weiß aber ehrlich nicht, wie ich diesen Index nachträglich von den bereits erstellten Items löschen kann. Über Hilfestellungen wäre ich sehr dankbar.

Die Struktur sieht in etwa so aus



> create: function (item,removeFunc, updateFunc) {
> var icons = view.createIcon();
> icons[0].action = removeFunc;
> icons[1].action = updateFunc;
> ...





> this.create(item, function(){
> this.removeElement(*index*,par2,par3), // Der Index muss nachträglich veränderbar sein
> this.updateElement(index,par2,par3)
> }


----------



## TM69 (4. Jul 2020)

Also bei 


Lobalo hat gesagt.:


> Moin,
> 
> mein Problem bezieht sich unter Verwendung von JavaScript, aber sollte auch für Java gelten.
> 
> ...


Also erstmal solltest du definieren, was du als dynamische Items meinst. Ein Array oder eine verkettete Liste? Bei Java kannst du die Klasse ArrayList verwenden


			ArrayList (Java Platform SE 7 )
		

, durch Aufruf von remove wird ein Eintrag aus der Liste entfernt.

In Javascript steht dir die Klasse Array 








						Array - JavaScript | MDN
					

The Array object, as with arrays in other programming languages, enables storing a collection of multiple items under a single variable name, and has members for performing common array operations.




					developer.mozilla.org
				



zur Verfügung. In der Doku findest du auch Beispiel zum entfernen.


----------



## Lobalo (4. Jul 2020)

TM69 hat gesagt.:


> Also bei
> 
> Also erstmal solltest du definieren, was du als dynamische Items meinst. Ein Array oder eine verkettete Liste? Bei Java kannst du die Klasse ArrayList verwenden
> 
> ...


 Hallo,

Die Items sind einfach bestimmte UI Komponenten. Mit dynamische Items meine ich einfach, dass diese zur Laufzeit generiert werden. Um das Problem nochmal zu verdeutlichen. 

Angenommen ich erstelle 3 Items
Item0
Item1
Item2

Die Daten für die Items werden über eine Liste gespeichert

dataForItem1  // index: 0
dataForItem2  // index: 1
dataForItem3  // index: 2

Wenn ich Item0 lösche wird aus der Datenliste das erste Item gelöscht. 
Item1
Item2

dataForItem2  // index: 0
dataForItem3  // index: 1

Soweit so gut. Das Problem ist jetzt, dass an Item1 noch der Index 1 hängt. Wenn ich also anschließend Item1 lösche, dann wird aus der Liste dataForItem3 gelöscht. Ich müsste also nach dem Löschen von Item0 die Indexe der nachfolgenden Items anpassen. 

Ich hoffe das Problem ist jetzt deutlich, sonst muss ich es nochmal anders versuchen


----------



## mrBrown (4. Jul 2020)

Wofür nutzt du überhaupt das Array? Wenn Item0 irgendwie auf die Daten für Item0 verweisen muss, kann es doch einfach direkt darauf verweisen?


----------

