## JavaScript - Create a function that sums two arguments together

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:

• sumTwoAnd(3) returns 5.

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

Solution 1 Basic approach

`function addTogether() {    var index = [].slice.call(arguments)    console.log(index)    if (!index.every(items => {        return typeof items === 'number';    })) { return }    if (index.length === 2) {        return index[0] + index[1]    }    var firstIndex = index[0]    //stores the fistindex and look for the second through recursion and store both the value    var addOneMOre = function (secondIndex) {        return addTogether(firstIndex, secondIndex)    }    return addOneMOre}console.log(addTogether(2, 3));console.log(addTogether(2)(5));console.log(addTogether(2)([3]));console.log(addTogether(2, "3"));console.log(addTogether("http://bit.ly/IqT6zt"));`

Output:

`57undefinedundefinedundefined`

Solution 2 jshint esversion: 6

`function addTogether() {    var args = Array.from(arguments);    return args.some(n => typeof n !== "number")        ? undefined        : args.length > 1            ? args.reduce((acc, n) => (acc += n), 0)            : n => (typeof n === "number" ? n + args[0] : undefined);}console.log(addTogether(2, 3));`

Output:

`5`