Array und dann davor, dahinter?!

Hallo,

ich habe ein Problem. Ich bekomme einen Wert per XML.

PHP:
alleautos = "1,28,29,30,31,";

Nun soll Flash mir sagen wenn z.B. vorher auto 29 ausgewählt wurde, welche Autos noch davor (1,28,) und dahinter (30,31,) sind. Ich will dies für spätere Schaltflächen für VOR und ZURÜCK wissen.

Ich denke das lässt sich mit einem Array lösen, aber wie?

cu
 
Hi,

Code:
alleautos = "1,28,29,30,31,"; 

var autoarray = alleautos.split(",");

var aktuell = 29;

trace(kleiner(aktuell, autoarray)); // gibt "1, 28" aus
trace(groesser(aktuell, autoarray)); // gibt "30, 31" aus

function kleiner(n, arr) {
	var ret = new Array();
	for (var i in arr) {
		if (arr[i] < n) {
			ret.push(arr[i]);
		}
	}
	ret.sort();
	return ret;
}

function groesser(n, arr) {
	var ret = new Array();
	for (var i in arr) {
		if (arr[i] > n) {
			ret.push(arr[i]);
		}
	}
	ret.sort();
	return ret;
}

Gruß
.
 
Hi,

verzichte bei der Funktion "kleiner" auf das Sortieren und gib einfach das erste Element zurück - bei der Funktion "groesser" genauso, nur dass Du weiterhin sortierst:
Code:
function kleiner(n, arr) {
	var ret = new Array();
	for (var i in arr) {
		if (arr[i] < n) {
			ret.push(arr[i]);
		}
	}
	return ret[0];
}

function groesser(n, arr) {
	var ret = new Array();
	for (var i in arr) {
		if (arr[i] > n) {
			ret.push(arr[i]);
		}
	}
	ret.sort();
	return ret[0];
}
Eine andere Methode, wäre das Array direkt nach dem nächstkleineren bzw. nächstgrößeren Wert zu durchsuchen (mag vielleicht ein wenig schneller sein), aber das würde jeweils ein paar Zeilen mehr bedeuten.

Gruß
.
 
Hi,

ja genau.

Das Problem ist nur das da irgendwo ein Leerzeichen bzw. Absatz in der ausgegebenen Variable ist so das ich mit dem Wert nicht arbeiten kann.


Gruß
 
beckersbesters hat gesagt.:
Hi,

ja genau.

Das Problem ist nur das da irgendwo ein Leerzeichen bzw. Absatz in der ausgegebenen Variable ist so das ich mit dem Wert nicht arbeiten kann.


Gruß

EDIT:

schon gefunden... war wahrscheinlich weil ich direkt aus dem Forum kopiert habe...

cu + Danke
 
Zurück