Files
freeCodeCamp/curriculum/challenges/german/02-javascript-algorithms-and-data-structures/basic-data-structures/copy-an-array-with-the-spread-operator.md
2022-08-19 20:53:29 +02:00

2.8 KiB

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
587d7b7b367417b2b2512b13 Kopiere ein Array mit dem Spread-Operator 1 301157 copy-an-array-with-the-spread-operator

--description--

Während slice() es uns erlaubt, selektiv zu entscheiden, welche Elemente eines Arrays kopiert werden sollen, ermöglicht der neue spread operator von ES6 das einfache Kopieren aller Elemente eines Arrays, und zwar der Reihe nach, mit einer einfachen und gut lesbaren Syntax. Die Spread-Syntax sieht einfach so aus: ...

In der Praxis können wir den Spread-Operator nutzen, um einen Array wie folgt zu kopieren:

let thisArray = [true, true, undefined, false, null];
let thatArray = [...thisArray];

thatArray entspricht [true, true, undefined, false, null]. thisArray bleibt unverändert und thatArray enthält die gleichen Elemente wie thisArray.

--instructions--

Wir haben eine Funktion copyMachine definiert, welche arr (ein Array) und num (eine Nummer) als Argumente benötigt. Die Funktion sollte einen neuen Array zurückgeben, der aus num Kopien von arr besteht. Wir haben die meiste Arbeit für dich getan, jedoch funktioniert es noch nicht ganz richtig. Verändere die Funktion, indem du Spread-Syntax verwendest, sodass es richtig funktioniert (Tipp: eine andere Methode, die wir bereits behandelt haben, könnte hier nützlich sein!).

--hints--

copyMachine([true, false, true], 2) sollte [[true, false, true], [true, false, true]] zurückgeben

assert.deepEqual(copyMachine([true, false, true], 2), [
  [true, false, true],
  [true, false, true]
]);

copyMachine([1, 2, 3], 5) sollte [[1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3]] zurückgeben

assert.deepEqual(copyMachine([1, 2, 3], 5), [
  [1, 2, 3],
  [1, 2, 3],
  [1, 2, 3],
  [1, 2, 3],
  [1, 2, 3]
]);

copyMachine([true, true, null], 1) sollte [[true, true, null]] zurückgeben

assert.deepEqual(copyMachine([true, true, null], 1), [[true, true, null]]);

copyMachine(["it works"], 3) sollte [["it works"], ["it works"], ["it works"]] zurückgeben

assert.deepEqual(copyMachine(['it works'], 3), [
  ['it works'],
  ['it works'],
  ['it works']
]);

Die Funktion copyMachine sollte den spread operator mit einem Array arr verwenden

assert(code.match(/\.\.\.arr/));

--seed--

--seed-contents--

function copyMachine(arr, num) {
  let newArr = [];
  while (num >= 1) {
    // Only change code below this line

    // Only change code above this line
    num--;
  }
  return newArr;
}

console.log(copyMachine([true, false, true], 2));

--solutions--

function copyMachine(arr,num){
    let newArr=[];
    while(num >=1){
    newArr.push([...arr]);
    num--;
    }
    return newArr;
}
console.log(copyMachine([true, false, true], 2));