Open1
argumentsのうまい使い方
問題
2 つの引数を合計する関数を作成してください。 1 つの引数のみが与えられた場合は、関数を返してください。その関数は 1 つの引数を取り、合計を返します。
たとえば、addTogether(2, 3) は 5を返し、addTogether(2) は関数を返す必要があります。
この返された関数に 1 つの引数を与えて呼び出すと、合計を返します。
var sumTwoAnd = addTogether(2);
sumTwoAnd(3) は 5 を返します。
いずれかの引数が有効な数値でない場合は、undefined を返してください。
解答
function addTogether() {
const [first, second] = arguments;
// argumentsには引数がオブジェクトとして格納されている
if (typeof(first) !== "number")
return undefined;
if (arguments.length === 1)
return (second) => addTogether(first, second); // 関数のカリー化
if (typeof(second) !== "number")
return undefined;
return first + second;
}
addTogether(2,3);
参考