ap(doMath({'numbers': [10,5,2,2], 'method':'subtract'})); var method = options.method || "add"; var numbers = options.numbers; var validNumbers = numbers.filter(isNumber); var methods = { add: function(a, b) { return a + b; }, subtract: function(a, b) { return a - b; } }; var methods = { add: function(a, b) { return a + b; }, subtract: function(a, b) { return a - b; } }; function doMath(options) { var method = options.method || "add"; var numbers = options.numbers; var validNumbers = numbers.filter(isNumber); var methods = { add: function(a, b) { return a + b; }, subtract: function(a, b) { return a - b; } }; return validNumbers.reduce(methods[method]); } function doMath(options) { var method = options.method || "add"; var numbers = options.numbers; var validNumbers = numbers.filter(isNumber); var methods = { add: function(a, b) { return a + b; }, subtract: function(a, b) { return a - b; } }; return validNumbers.reduce(methods[method]); }function doMath(options) { var defaults = { method: 'add' }; var options = $.extend({}, defaults, options); var n = 0; for(var i=0; i<options.numbers.length; i++) { if(isNumber(options.numbers[i])) { if(options.method == 'add' || i == 0) { n += options.numbers[i]; } else if(options.method == "subtract"){ n -= options.numbers[i]; } } } ap(n); } function doMath(options) { var defaults = { method: 'add' }; var options = $.extend({}, defaults, options); var n = 0; for(var i=0; i<options.numbers.length; i++) { if(isNumber(options.numbers[i])) { if(options.method == 'add' || i == 0) { n += options.numbers[i]; } else if(options.method == "subtract"){ n -= options.numbers[i]; } } } ap(n);