romero: Array-Splice

Beitrag lesen

das hier ist ja die Funktion, in der Du alle "doppelten" Einträge löschen möchtest. Dazu:

  1. Möchtest Du in der if-Abfrage prüfen, ob der Teilstring größer 1 ist? Das hieße ja, dass die Elemnte 2, 3, 4, ... gelöscht werden. Du wolltest aber doch das größte behalten? Und kann die Anzahl der Elemente auch zweistellig werden? Schau Dir nochmal die Funktionhttp://de.selfhtml.org/javascript/objekte/string.htm#substr@title=substr an.

Könnten auch mehrstellige sein am ende. Aber mir geht’s ja erstmal dadrum, dass er überhaupt die „kleineren“ werte löscht. Hab die Formel umgebaut.

				for( var i = 0; i < infile_zusatz_1.length; i++ )  
				{  
					if( "1" < infile_zusatz_1[i].substr( 15, 1 ) )  
					{  
						infile_zusatz_1.splice( i-1, 1 );  
  
						msg( i + " " + infile_zusatz_1[i] + "<br>" );  
					}  
				}

Da passiert genau das selbe, dass er nur bestimmte ausgibt.

  1. Die Funktion http://de.selfhtml.org/javascript/objekte/array.htm#splice@title=splice erwartet als 1. Parameter die Indexnummer im Array. Du holst den Substring 1, 2, 3, usw. und ziehst von diesem dann die Anzahl der Schleifendurchgänge ab?

Ja so hab ich es mir gedacht, dass es so geht. Denn wenn die Anzahl z.B. 5 ist, dann ist er ja an der 4. Stelle der for-Schleife oder ( also gezählt von 0)? Und 5-4=1 sprich er hat nur noch 1 Eintrag stehen mit der richtigen Anzahl. Dacht ich jedenfalls.

  1. Bei msg fehlt ein Semikolon am Ende.

Gruß, Dennis

Bemerkt und behoben.