Hi Leute,
Also ich hab mal eine Aufgabe, wo lücken zu füllen sind und bei manchen weiss ich nicht weiter.
Wäre super wenn ihr mir helfen könntet.
Für die Aufrufe der Bibliotheksfunktionen sollen Funktionsverkettungen möglich sein, wie z.B.
Aufruf-Beispiel 1: mystack.debug().push('a').push('b').pop().debug(); zeige [ ] und [a] an.
Aufruf-Beispiel 2: mystack.reset().push(3).push(4).each(function(el){return el*el;}).debug(); zeige [9, 16] an.
Aufruf-Beispiel 3: mystack.reset().set(0,0).add(5).add(6).debug(); zeige [11] an.
a) Damit die Funktionsverkettungen möglich werden, soll an allen Stellen /* 1 */ der Code return this eingesetzt werden.
b) Die Funktion reset() bei /* 2 */ soll den Array arr "leer initialisieren".
c) Bei /* 3 */ soll der Variablenwert v auf den privaten Array arr "gepushed" werden.
d) Bei /* 4 */ soll auf jedes Element von arr eine Funktion fn angewendet werden. Der aktuelle fn-Rückgabewert überschreibt das aktuelle arr-Element.
e) Bei der Funktion set(val, idx), bei /* 5 */ soll idx mit den Index-Grenzen überprüft werden.
f) Fehlt bei /* 6 */ bei einem Aufruf von add(val, idx) der idx-Paramter, wie z.B. bei add(4711), so soll idx = 0 verwendet werden.
g) Bei /* 7 */ bei der Funktion debug() soll jeweils zwischen alle arr-Elemente ein String ', ' einfügt werden und aus arr ein "Gesamt-String" erstellt werden, der in einer alert-Box angezeigt wird.
Hab mal die Sachen, die ich ausgefüllt habe fett hervorgehoben. Wäre super dankbar für eure Hilfe
Also ich hab mal eine Aufgabe, wo lücken zu füllen sind und bei manchen weiss ich nicht weiter.
Wäre super wenn ihr mir helfen könntet.
Für die Aufrufe der Bibliotheksfunktionen sollen Funktionsverkettungen möglich sein, wie z.B.
Aufruf-Beispiel 1: mystack.debug().push('a').push('b').pop().debug(); zeige [ ] und [a] an.
Aufruf-Beispiel 2: mystack.reset().push(3).push(4).each(function(el){return el*el;}).debug(); zeige [9, 16] an.
Aufruf-Beispiel 3: mystack.reset().set(0,0).add(5).add(6).debug(); zeige [11] an.
a) Damit die Funktionsverkettungen möglich werden, soll an allen Stellen /* 1 */ der Code return this eingesetzt werden.
b) Die Funktion reset() bei /* 2 */ soll den Array arr "leer initialisieren".
c) Bei /* 3 */ soll der Variablenwert v auf den privaten Array arr "gepushed" werden.
d) Bei /* 4 */ soll auf jedes Element von arr eine Funktion fn angewendet werden. Der aktuelle fn-Rückgabewert überschreibt das aktuelle arr-Element.
e) Bei der Funktion set(val, idx), bei /* 5 */ soll idx mit den Index-Grenzen überprüft werden.
f) Fehlt bei /* 6 */ bei einem Aufruf von add(val, idx) der idx-Paramter, wie z.B. bei add(4711), so soll idx = 0 verwendet werden.
g) Bei /* 7 */ bei der Funktion debug() soll jeweils zwischen alle arr-Elemente ein String ', ' einfügt werden und aus arr ein "Gesamt-String" erstellt werden, der in einer alert-Box angezeigt wird.
Code:
var mystack = (function() {
var i, arr = [ ];
function reset() { [B]arr = [];[/B]/* 2 */ /* 1 */ }
function push(v) { [B]arr.push();[/B]/* 3 */ /* 1 */ }
function pop() { arr.pop(); /* 1 */ }
function each(fn) { /* 4 */
for( i = 0; i < arr.length; i += 1) {
[B]arr[i] = fn;[/B]
} /* 1 */
}
function set(val, idx) { /* 5 */
________________________________________________
arr[idx] = val; /* 1 */
}
function add(val, idx) { /* 6 */
______________________________________________
arr[idx] += val; /* 1 */
}
function debug() { /* 7 */
alert('['+[B]arr[idx][/B]+']'); /* 1 */
}
return { set : set, // val in idx-Element
reset : reset, // privaten Array leeren
push : push,
pop : pop,
each : each, // auf jedem Element fn ausführen
add : add, // Zahlen/Strings auf idx
debug : debug // anzeigen des privaten Array
};
}());
Hab mal die Sachen, die ich ausgefüllt habe fett hervorgehoben. Wäre super dankbar für eure Hilfe