Arguments Optional

— 3 minute read

From the FreeCodeCamp intermediate algorithms here:

Create a function that sums two arguments together. If only one argument is provided, then return a function that expects one argument and returns the sum.

For example, addTogether(2, 3) should return 5, and addTogether(2) should return a function.

Calling this returned function with a single argument will then return the sum:

var sumTwoAnd = addTogether(2);

sumTwoAnd(3) returns 5.

If either argument isn't a valid number, return undefined.

FreeCodeCamp - Arguments Optional

Forgive me for not writing out my thought process! I got excited for getting so close to the end of the Intermediate algorithms and just moved on! My code is below though!

My solution:

function addTogether() {
let x = arguments[0];
let y = arguments[1];

if (typeof x !== 'number') {
return undefined;

if (typeof x === 'number' && typeof y === 'number') {
// console.log('yess')
return x + y;
} else if (typeof y === 'undefined') {
return function() {
if (typeof arguments[0] === 'number') {
return x + arguments[0];
} else {
return undefined;

addTogether(2, 3);