Javascript Rekursion macht Faxen

andrutz

Mitglied
Hallo liebe Gemeinde,
ich bin mal wieder an die Grenzen meines Javascript Lateins gestoßen -.-.

ich habe ein Objekt, indem eine Funktion rekursiv ein Index generieren soll. Nur da spielt JS nicht so ganz mit.

kurze Skizze:

Json von Php/Ajax übergeben:

Code:
level 1 test 1
level 1 test 2
level 1 test 3 level 2 test 1
level 1 test 3 level 2 test 2
level 1 test 3 level 2 test 3 level 3 test 1
level 1 test 3 level 2 test 3 level 3 test 2
level 1 test 3 level 2 test 3 level 3 test 3
level 1 test 4
level 1 test 5

Aber in dem JS index steht letztendlich nur:

Code:
level 1 test 3 level 2 test 3 level 3 test 1
level 1 test 3 level 2 test 3 level 3 test 2
level 1 test 3 level 2 test 3 level 3 test 3
level 1 test 4
level 1 test 5

Hier der Code aus original Rekursionsfunktions _appInitialize() , alles andere ist nur um die Umgebung zu skizzieren.

Code:
function object() {

...
	//beispiel für aufruf
	function _load() {
		json = ajaxJson;
		this.appHandler(json);
	}
	
	function _appHandler(json) {
		level = json;
		index = this.appInitialize(level);
		return(index);
	}
	//beispiel für aufruf ende

	function _appInitialize(level) { // rekursive funktion
		_this = this;
		index = new Array(); // soll den index für das aktuelle level definieren
		index[0] = level.title; // der titel
		for(itemId in level.items) { // jeden punkt durchlaufen lassen
			if(level.items[itemId] == '[object Object]') { // wenn unterpunkte, recursion einleiten
				levelNew = level.items[itemId]; // neues level für rekursion definieren
				index[itemId] = _this.appInitialize(levelNew); // rekursion starten
			} else { // indexieren und ausgeben
				index[itemId] = level.items[itemId]; // indexieren
			}
		}
		
		return(index); // generiertes level index zruückgeben
	}

...	

}

...

test = new object();
test.load();

...

Vielen Dank für eure Lösungsvorschläge im voraus ;)
 
Eine Bessere Beschreibung von dem Objekt das du geliefert bekommst und wie der index Schlussendlich aussehen sollte hilft uns Helfern sicher weiter ;-)

lg Samuel
 

Neue Beiträge

Zurück