Files
freeCodeCamp/curriculum/challenges/german/02-javascript-algorithms-and-data-structures/es6/use-the-rest-parameter-with-function-parameters.md
2022-08-19 20:53:29 +02:00

2.0 KiB

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
587d7b88367417b2b2512b47 Verwende den Restparameter mit Funktionsparametern 1 301221 use-the-rest-parameter-with-function-parameters

--description--

Um uns zu helfen, flexiblere Funktionen zu erstellen, führt ES6 den Restparameter für Funktionsparameter ein. Mit dem Restparameter kannst du Funktionen erstellen, die eine variable Anzahl von Argumenten annehmen. Diese Argumente werden in einem Array gespeichert, auf das später innerhalb der Funktion zugegriffen werden kann.

Schau dir diesen Code an:

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

Die Konsole würde die Strings You have passed 3 arguments. und You have passed 4 arguments. anzeigen.

Der Restparameter macht die Überprüfung des args-Arrays überflüssig und ermöglicht es uns, map(), filter() und reduce() auf das Parameter-Array anzuwenden.

--instructions--

Ändere die Funktion sum mit dem Restparameter so ab, dass die Funktion sum eine beliebige Anzahl von Argumenten annehmen und deren Summe zurückgeben kann.

--hints--

Das Ergebnis von sum(0,1,2) sollte 3 sein

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

Das Ergebnis von sum(1,2,3,4) sollte 10 sein

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

Das Ergebnis von sum(5) sollte 5 sein

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

Das Ergebnis von sum() sollte 0 sein

assert(sum() === 0);

sum sollte eine Pfeilfunktion sein, die die Restparametersyntax (...) für den args-Parameter verwendet.

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);
}