Hallo zusammen,
ich füge am besten den Code zu was ich bis jetzt gemacht habe, bin mir nicht sicher ob ich die paar Zeilen richtig geschrieben haben. Ich hoffe da kennt sich jemand gut damit aus und kann mir weiterhelfen diesen Code zu ergänzen.
Es ist eine kleine Bibliothek mystack zu schreiben, die einen privaten Array arr = [ ] verwendet. Die Bibliotheksfunktionen set(), reset(), push(), pop(), each(), add(), debug() sind zu erg�nzen. Die Funktion debug() soll den privaten Array anzeigen.
F�r die Aufrufe der Bibliotheksfunktionen sollen Funktionsverkettungen m�glich sein, wie z.B.
Das Aufruf-Beispiel 1
mystack.debug().push('a').push('b').pop().debug(); zeige [ ] und [a] an.
Das Aufruf-Beispiel 2
mystack.reset().push(3).push(4).each(function(el){return el*el;}).debug();
zeige [9, 16] an.
Das 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 ___________________________ 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-anfang---
var mystack = (function() {
var i, arr = [ ];
function reset() { arr = []; /* 2 */ /* 1 */ }
function push(v) { arr.push[v]; /* 3 */ /* 1 */ }
function pop() { arr.pop(); /* 1 */ }
function each(fn) { /* 4 */
for( i = 0; i < arr.length; i += 1) {
arr=fn(Number(arr));
} /* 1 */
}
function set(val, idx) { /* 5 */
________________________________________________
arr[idx] = val; /* 1 */
}
function add(val, idx) { /* 6 */
if(typeof idx="undefined"){idx=0;}
arr[idx] += val; /* 1 */
}
function debug() { /* 7 */
alert('['+ arr.join(",") +']'); /* 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
};
}());
---code-ende---
ich füge am besten den Code zu was ich bis jetzt gemacht habe, bin mir nicht sicher ob ich die paar Zeilen richtig geschrieben haben. Ich hoffe da kennt sich jemand gut damit aus und kann mir weiterhelfen diesen Code zu ergänzen.
Es ist eine kleine Bibliothek mystack zu schreiben, die einen privaten Array arr = [ ] verwendet. Die Bibliotheksfunktionen set(), reset(), push(), pop(), each(), add(), debug() sind zu erg�nzen. Die Funktion debug() soll den privaten Array anzeigen.
F�r die Aufrufe der Bibliotheksfunktionen sollen Funktionsverkettungen m�glich sein, wie z.B.
Das Aufruf-Beispiel 1
mystack.debug().push('a').push('b').pop().debug(); zeige [ ] und [a] an.
Das Aufruf-Beispiel 2
mystack.reset().push(3).push(4).each(function(el){return el*el;}).debug();
zeige [9, 16] an.
Das 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 ___________________________ 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-anfang---
var mystack = (function() {
var i, arr = [ ];
function reset() { arr = []; /* 2 */ /* 1 */ }
function push(v) { arr.push[v]; /* 3 */ /* 1 */ }
function pop() { arr.pop(); /* 1 */ }
function each(fn) { /* 4 */
for( i = 0; i < arr.length; i += 1) {
arr=fn(Number(arr));
} /* 1 */
}
function set(val, idx) { /* 5 */
________________________________________________
arr[idx] = val; /* 1 */
}
function add(val, idx) { /* 6 */
if(typeof idx="undefined"){idx=0;}
arr[idx] += val; /* 1 */
}
function debug() { /* 7 */
alert('['+ arr.join(",") +']'); /* 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
};
}());
---code-ende---
Zuletzt bearbeitet: