freeCodeCamp/curriculum/challenges/japanese/02-javascript-algorithms-an.../es6/use-the-rest-parameter-with...

2.1 KiB

id title challengeType forumTopicId dashedName
587d7b88367417b2b2512b47 関数パラメーターで残余引数を使用する 1 301221 use-the-rest-parameter-with-function-parameters

--description--

より柔軟な関数を作成できるように、ES6 では関数パラメーターに残余引数が導入されています。 残余引数を使用すると、可変個の引数を取る関数を作成できます。 これらの引数は配列に格納され、後で関数内からアクセスできます。

次のコードをご覧ください。

function howMany(...args) {
  return "You have passed " + args.length + " arguments.";
}
console.log(howMany(0, 1, 2));
console.log(howMany("string", null, [1, 2, 3], { }));

コンソールには、文字列 You have passed 3 arguments.You have passed 4 arguments. が表示されます。

残余引数を使用すると、args 配列を調べる必要がなくなり、パラメーターの配列に map()filter()reduce() を適用できるようになります。

--instructions--

残余引数を使用して関数 sum を変更し、関数 sum が任意の数の引数を受け取ってその和を返せるようにしてください。

--hints--

sum(0,1,2) の結果は 3 になる必要があります。

assert(sum(0, 1, 2) === 3);

sum(1,2,3,4)の結果 は 10 になる必要があります。

assert(sum(1, 2, 3, 4) === 10);

sum(5) の結果は 5 になる必要があります。

assert(sum(5) === 5);

sum() の結果は 0 になる必要があります。

assert(sum() === 0);

sum は、args パラメーターで残余引数の構文 (...) を使用するアロー関数にする必要があります。

assert(__helpers.removeWhiteSpace(code).match(/sum=\(\.\.\.args\)=>/));

--seed--

--seed-contents--

const sum = (x, y, z) => {
  const args = [x, y, z];
  return args.reduce((a, b) => a + b, 0);
}

--solutions--

const sum = (...args) => {
  return args.reduce((a, b) => a + b, 0);
}