Probleme mit selbstgebastelter Sortierung

nightcrawler86

Grünschnabel
Hallo,

ich habe Probleme mit folgender Funktion. Dies sollte eine Sortierung sein, um Ergebnisse die sich in Tabellen und dem Array "daten" befinden nach Preis sortieren zu können. Die Daten in der ausgegebenen Tabelle und im Array "daten" sind identisch.


Die Ergebnisse sind danach völlig falsch sortiert. Bitte einfach mal anschauen.

Code:
var altePosition = 0;
for(h=0;h<daten.length;h++) {
	for(i=0;i<daten.length;i++) {
		if(i!=h) {
			if(daten[h]["Preis"] < daten[i]["Preis"] && daten[h]["Position"] > daten[i]["Position"]) {
				altePosition = daten[h]["Position"];
				daten[h]["Position"]=daten[i]["Position"];
				for(j=0;j<daten.length;j++) {
		    			if(j!=h) {
						if(daten[h]["Position"] <= daten[j]["Position"] && daten[j]["Position"] < altePosition) {
							daten[j]["Position"]++;
						}
					}
				}
			}
		}
	}
	if(altePosition>0) document.getElementById("daten").insertBefore(document.getElementById("daten").childNodes[altePosition], document.getElementById("daten").childNodes[daten[h]["Position"]]);
}

Bei Fragen einfach melden.


MfG

nightcrawler86
 
Zuletzt bearbeitet:
hi,

Array:

Code:
daten[i]["Preis"]
daten[i]["Waehrung"]
daten[i]["Name"]
daten[i]["Beschreibung"]
daten[i]["Details"]["Farbe"][i]
daten[i]["Details"]["Größe"][i]
daten[i]["Position"]


Tabelle
Code:
<div id="daten">

<table>
<tr><td> daten[i]["Name"] </td><td> daten[i]["Beschreibung"] </td><tr>
<tr><td> daten[i]["Preis"] </td><td> daten[i]["Waehrung"] </td></tr>
</table> 

<table>
<tr><td> daten[i]["Name"] </td><td> daten[i]["Beschreibung"] </td><tr>
<tr><td> daten[i]["Preis"] </td><td> daten[i]["Waehrung"] </td></tr>
</table>

<table>
<tr><td> daten[i]["Name"] </td><td> daten[i]["Beschreibung"] </td><tr>
<tr><td> daten[i]["Preis"] </td><td> daten[i]["Waehrung"] </td></tr>
</table>

<table>
<tr><td> daten[i]["Name"] </td><td> daten[i]["Beschreibung"] </td><tr>
<tr><td> daten[i]["Preis"] </td><td> daten[i]["Waehrung"] </td></tr>
</table>

...

</div>
 
Zuletzt bearbeitet:
Mmmh...das sieht recht verworren aus :-(

Gehe ich recht in der Annahme, dass du den Array nur benötigst, um etwas Sortierbares zu Haben?

Falls ja, hier mal nen anderer Vorschlag.
Es wird auch ein Array verwendet(allerdings wird dieser direkt aus der Tabelle gefüllt).

Das Sortieren selbst erfolgt dabei ganz bequem über die sort()-Methode des Array-Objektes.
 
Hi,

das sieht ganz nett aus. Aber ich speichere z.b. die Psoition im Array ab, um hinterher auch einen Filter anwenden zu können (wenn Filterkriterium nicht entspricht, dann entsprechende Tabelle löschen).
 
Zurück