Gina: Sortieren von Array

Beitrag lesen

Hallo,

mir faellt zu einer Aufgabenstellung ein konkreter Loesungsansatz nicht ein, obwohl ich entsprechende Seiten hinsichtlich sortieren von Arrays schon durchgelesen haben. Das Problem liegt in der Sortierabsicht eines mehrdimensionalen Array. Sachverhalt wie folgt:


<element id="test1" order="2"/>
<element id="test2" order="1"/>
<element id="test3" order="4"/>

var e1ement1 = document.getElementById('test1');
var e1ement2 = document.getElementById('test2');
var e1ement3 = document.getElementById('test3');

Soweit ich erkennen kann, notierst Du Dir hier die Element- oder Text- oder Attributknoten oder was auch immer in den Variablen element1 bis elemnt3. Was, wenn es mehr Knoten werden, die Du zwischendurch ablegen musst?

var Array = [];
Array["test"] = [];
Array["test"]["lauf"] = [];
Array["test"]["lauf"]["xy"]["default"] = element1;
Array["test"]["lauf"]["uu"]["default"] = element2;
Array["test"]["lauf"]["xu"]["default"] = element3;

Da ich relativ wenig mit JavaScript Erfahrung sammeln konnte bisher, weiss ich nicht, ob diese Notation zur Definition des Arrays wirklich korrekt ist. Ich kenne bisher nur die folgende:

var meinArray = new Array(); bzw. für ein eindimensionales Array mit bekannter Dimension var meinArray = new Array(i);


Aufruf der Sortierfunktion an folgender Stelle:

Array["test"]["lauf"].sort(????);

???? muesste durch eine Suchfunktion ersetzt werden, die auf das order attribute im element zugreift und dann dadurch die Folge erzeugt:

Array["test"]["lauf"]["uu"]["default"] = element2;
Array["test"]["lauf"]["xy"]["default"] = element1;
Array["test"]["lauf"]["xu"]["default"] = element3;

Ob es auch char- bzw. string-Sorts gibt, weiss ich nicht. eine Möglichkeit wäre jedoch, falls das "uu", "xy" und "xu" strings sind, mit parseInt() in einen Integerwert umzurechnen. Die dritte Dimension (also das Order-Kriterium müsstest Du dann allerdings noch in ein separates, eindimensionales Hilfsarray packen und dieses dann durchsortieren lassen.

In Perl. da bin ich eher zuhause würde ich an Deiner Stelle das Ganze mit einem assozitiven Array lösen. Aber für Javascript kenne ich (wie gesagt, ist kein Massstab) keine entsprechende Methode.

Hoffe, ich konnte Dir dennoch den einen oder anderen Tip geben

Gruss
Gina

--
X-Self-Code: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:° ss:| de:] js:| ch:| sh:) mo:| zu:)
X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html