2.4 KiB
id, title, challengeType, forumTopicId, dashedName
| id | title | challengeType | forumTopicId | dashedName |
|---|---|---|---|---|
| 5cfa550e84205a357704ccb6 | Verwende die Destrukturierungszuweisung, um Werte aus Objekten zu extrahieren | 1 | 301216 | use-destructuring-assignment-to-extract-values-from-objects |
--description--
Destrukturierungszuweisung ist eine spezielle Syntax, die in ES6 eingeführt wurde, um Werte, die direkt von einem Objekt übernommen werden, sauber zuzuweisen.
Betrachte den folgenden ES5-Code:
const user = { name: 'John Doe', age: 34 };
const name = user.name;
const age = user.age;
name hätte den Wert des Strings John Doe und age wäre die Zahl 34.
Hier ist eine entsprechende Zuweisungsanweisung mit der ES6-Destrukturierungssyntax:
const { name, age } = user;
Auch hier hätte name den Wert des Strings John Doe und age wäre die Zahl 34.
Hier werden die Variablen name und age erstellt und mit den entsprechenden Werten aus dem Objekt user belegt. Du kannst sehen, wie viel sauberer das ist.
Du kannst so viele oder so wenige Werte aus dem Objekt extrahieren, wie du willst.
--instructions--
Ersetze die beiden Zuweisungen durch eine gleichwertige Destrukturierungszuweisung. Es sollte den Variablen today und tomorrow trotzdem die Werte von today und tomorrow aus dem Objekt HIGH_TEMPERATURES zugewiesen werden.
--hints--
Du solltest die ES5-Zuweisungssyntax entfernen.
assert(
!code.match(/today\s*=\s*HIGH_TEMPERATURES\.(today|tomorrow)/g)
);
Du solltest die Destrukturierung verwenden, um die Variable today zu erstellen.
assert(
code.match(/(var|let|const)\s*{\s*(today[^}]*|[^,]*,\s*today)\s*}\s*=\s*HIGH_TEMPERATURES(;|\s+|\/\/)/g)
);
Du solltest die Destrukturierung verwenden, um die Variable tomorrow zu erstellen.
assert(
code.match(/(var|let|const)\s*{\s*(tomorrow[^}]*|[^,]*,\s*tomorrow)\s*}\s*=\s*HIGH_TEMPERATURES(;|\s+|\/\/)/g)
);
today sollte gleich 77 sein und tomorrow sollte gleich 80 sein.
assert(today === 77 && tomorrow === 80);
--seed--
--seed-contents--
const HIGH_TEMPERATURES = {
yesterday: 75,
today: 77,
tomorrow: 80
};
// Only change code below this line
const today = HIGH_TEMPERATURES.today;
const tomorrow = HIGH_TEMPERATURES.tomorrow;
// Only change code above this line
--solutions--
const HIGH_TEMPERATURES = {
yesterday: 75,
today: 77,
tomorrow: 80
};
const { today, tomorrow } = HIGH_TEMPERATURES;