Lieber Rolf,
var randomOps = [ 'plus', 'minus', 'mal', 'div' ];
ginge das denn nicht auch mit Object.keys(), also opMap.keys()
? Damit spart man sich ein unnötiges Array.
var opMap = { 'random': function(a,b) { var op = rand(0, randomOps.length); return opMap[randomOps[op]](a,b); } };
Vielleicht eher so?
"random": function (a, b) {
var keys = opMap.keys();
return opMap[keys[rand(0, keys.length)]](a, b);
}
Noch schöner fände ich ja, wenn man die richtigen Taschenrechnerzeichen benutzte und sämtliche Bezeichner in rein englischer Sprache formulierte (das Internet ist international und englisch die lingua franca):
var opMap = {
"add": function(a, b) {
return { symbol: "+", result: a+b };
},
"substract": function(a, b) {
return { symbol: "-", result: a-b };
},
"multiply": function(a, b) {
return { symbol: "×", result: a*b };
},
"divide": function(a, b) {
return { symbol: "÷", result: a/b };
},
"any": function(a, b) {
var keys = opMap.keys();
return opMap[keys[rand(0, keys.length)]](a, b);
}
};
var opInfo = handler(a,b); document.querySelector('#operator').textContent = opInfo.symbol; ergebnis = opInfo.erwartet;
Das müsste man dann noch so anpassen:
var opInfo = handler(a,b);
document.querySelector('#operator').textContent = opInfo.symbol;
ergebnis = opInfo.result;
Liebe Grüße,
Felix Riesterer.