Files
freeCodeCamp/curriculum/challenges/german/22-rosetta-code/rosetta-code-challenges/comma-quibbling.md
2024-01-24 19:52:36 +01:00

2.8 KiB

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
596e414344c3b2872167f0fe Wortklauberei mit Kommas 1 302234 comma-quibbling

--description--

Comma quibbling is a task originally set by Eric Lippert in his blog.

--instructions--

Schreibe eine Funktion, um eine Zeichenkettenausgabe zu erzeugen, die die Verkettung von Eingabewörtern aus einer Liste/Sequenz ist:

  1. An input of no words produces the output string of just the two brace characters ("{}")
  2. Eine Eingabe von nur einem Wort, z.B. ["ABC"], erzeugt die Ausgabezeichenfolge des Wortes innerhalb der zwei Klammern z.B. "{ABC}"
  3. Eine Eingabe von zwei Wörtern, z.B. ["ABC", "DEF"], erzeugt den Ausgabe-String der beiden Wörter innerhalb der beiden Klammern, wobei die Wörter durch den String " and " getrennt sind, z.B. "{ABC and DEF}"
  4. Eine Eingabe von drei oder mehr Wörtern, z. B. ["ABC", "DEF", "G", "H"], ergibt die Ausgabe aller Wörter bis auf das letzte Wort, das durch ", " getrennt ist, wobei das letzte Wort durch " and " getrennt ist und alle Wörter in geschweiften Klammern stehen; z.B. "{ABC, DEF, G and H}"

Teste deine Funktion mit der folgenden Reihe von Eingaben, die deine Ausgabe hier auf dieser Seite zeigen:

  • [] # (No input words).
  • ["ABC"]
  • ["ABC", "DEF"]
  • ["ABC", "DEF", "G", "H"]

Hinweis: Bei dieser Aufgabe wird davon ausgegangen, dass Wörter nicht leere Zeichenketten mit Großbuchstaben sind.

--hints--

quibble sollte eine Funktion sein.

assert(typeof quibble === 'function');

quibble(["ABC"]) sollte einen String zurückgeben.

assert(typeof quibble(['ABC']) === 'string');

quibble([]) sollte "{}" zurückgeben.

assert.equal(quibble(testCases[0]), results[0]);

quibble(["ABC"]) sollte "{ABC}" zurückgeben.

assert.equal(quibble(testCases[1]), results[1]);

quibble(["ABC", "DEF"]) sollte "{ABC and DEF}" zurückgeben.

assert.equal(quibble(testCases[2]), results[2]);

quibble(["ABC", "DEF", "G", "H"]) sollte "{ABC, DEF, G and H}" zurückgeben.

assert.equal(quibble(testCases[3]), results[3]);

--seed--

--after-user-code--

const testCases = [[], ["ABC"], ["ABC", "DEF"], ["ABC", "DEF", "G", "H"]];
const results = ["{}", "{ABC}", "{ABC and DEF}", "{ABC, DEF, G and H}"];

--seed-contents--

function quibble(words) {

  return true;
}

--solutions--

function quibble(words) {
  return "{" +
    words.slice(0, words.length - 1).join(", ") +
   (words.length > 1 ? " and " : "") +
   (words[words.length - 1] || '') +
  "}";
}