Array sortieren -> 2tes array angleichen

ali-gator

Erfahrenes Mitglied
Hallo,

ich habe 2 arrays:

1 array = altstadt, neuburg, großstadt
2 array = 1,2,3

das erste array soll nach alphabet sortiert werden, das 2te array enthält Id´s für die movie-clips die dann geladen werden. Damit die auch nach alphabet geladen werden sollen muss dann irgendwie das ergebnis des ersten arrays auf das 2te übertragen werden....
Hab allerdings keine Ahnung wie ich das machen soll und bräuchte ein bisschen hilfe :)
bis dann

ali-gator
 
Hi,

ich habs mal eben so probiert:
Code:
var staedte = new Array("altstadt", "neuburg", "großstadt");
var nummern = new Array(1, 2, 3);

var r = joinSort(staedte, nummern);
staedte = r[0];
nummern = r[1];

trace("S: " + staedte);
trace("N: " + nummern);

function joinSort(a1, a2) {
	var r = new Array();
	for (var i=0; i<a1.length; i++) {
		r[i] = new Object();
		r[i].a1 = a1[i];
		r[i].a2 = a2[i];
	}
	function byA1(a, b) {
		if (a.a1 > b.a1) {
			return 1;
		} else if (a.a1 < b.a1) {
			return -1;
		} else {
			return 0;
		}
	}
	r.sort(byA1);
	for (var i=0; i<a1.length; i++) {
		a1[i] = r[i].a1;
		a2[i] = r[i].a2;
	}
	return new Array(a1, a2);
}
, geht aber wahrscheinlich noch eleganter. ;)

Gruß
.
 
Hallo,

also ich hab mir deine Funktion angeschaut und hab´s irgendwie nicht ganz gecheckt... :)
Nachdem ich dann aber (nochmal) gegoogelt hab hab ich was von sortOn und mehrdimensionalen Arrays (oder sowas) gehört...
Jetzt hab ichs mal so gemacht und es hat eigentlich auf anhieb funktioniert:

PHP:
function erzeuge_arrays() {
	for(i=0;i<pfad.childNodes.length;i++) {
		alphabet_array.push({sortierer: pfad.childNodes[i].attributes.headline, id: i});
	}
	alphabet_array.sortOn(["sortierer"]);
	for(i=0;i<pfad.childNodes.length;i++) {
		trace(alphabet_array[i].sortierer);
		trace(alphabet_array[i].id);
	}
}

Verbesserungen? Formatierungsfehler oder so!
bis dann und danke für die hilfe

ali-gator
 
Zurück