102 lines
3.0 KiB
Markdown
102 lines
3.0 KiB
Markdown
---
|
||
id: 5cfa550e84205a357704ccb6
|
||
title: Використовуйте деструктивне привласнення для визначення змінних із масивів
|
||
challengeType: 1
|
||
forumTopicId: 301216
|
||
dashedName: use-destructuring-assignment-to-extract-values-from-objects
|
||
---
|
||
|
||
# --description--
|
||
|
||
<dfn>Призначення деструктуризації</dfn> є спеціальним синтаксисом, запровадженим у ES6, для чіткого призначення параметрів, взятих безпосередньо з об'єкта.
|
||
|
||
Розглянемо наступний приклад коду ES5:
|
||
|
||
```js
|
||
const user = { name: 'John Doe', age: 34 };
|
||
|
||
const name = user.name;
|
||
const age = user.age;
|
||
```
|
||
|
||
`name` матиме значення рядка `John Doe`, and `age` матиме значення числа `34`.
|
||
|
||
Ось аналогічна інструкція з використання синтаксису деструкції ES6:
|
||
|
||
```js
|
||
const { name, age } = user;
|
||
```
|
||
|
||
Отже, `name` стане рядком `John Doe`, and `age` матиме значення числа `34`.
|
||
|
||
Тут змінні `name` та `age` будуть створені і призначені значення їх відповідних значень об'єкта `user`. Ви можете побачити наскільки стало простіше.
|
||
|
||
Ви можете отримати потрібну кількість значень з потрібного вам об'єкта.
|
||
|
||
# --instructions--
|
||
|
||
Замініть два визначення еквівалентами з деструктивного привласнення. Ви все ще призначаєте змінним `today` and `tomorrow` значення `today` та `tomorrow` з об'єкту `HIGH_TEMPERATURES`.
|
||
|
||
# --hints--
|
||
|
||
Видаліть призначення синтаксису ES5.
|
||
|
||
```js
|
||
assert(
|
||
!code.match(/today\s*=\s*HIGH_TEMPERATURES\.(today|tomorrow)/g)
|
||
);
|
||
```
|
||
|
||
Використовуйте деструкцію, щоб створити змінну `today`.
|
||
|
||
```js
|
||
assert(
|
||
code.match(/(var|let|const)\s*{\s*(today[^}]*|[^,]*,\s*today)\s*}\s*=\s*HIGH_TEMPERATURES(;|\s+|\/\/)/g)
|
||
);
|
||
```
|
||
|
||
Використовуйте деструкцію, щоб створити змінну `tomorrow`.
|
||
|
||
```js
|
||
assert(
|
||
code.match(/(var|let|const)\s*{\s*(tomorrow[^}]*|[^,]*,\s*tomorrow)\s*}\s*=\s*HIGH_TEMPERATURES(;|\s+|\/\/)/g)
|
||
);
|
||
```
|
||
|
||
`today` буде рівним `77` та `tomorrow` дорівнюватиме `80`.
|
||
|
||
```js
|
||
assert(today === 77 && tomorrow === 80);
|
||
```
|
||
|
||
# --seed--
|
||
|
||
## --seed-contents--
|
||
|
||
```js
|
||
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--
|
||
|
||
```js
|
||
const HIGH_TEMPERATURES = {
|
||
yesterday: 75,
|
||
today: 77,
|
||
tomorrow: 80
|
||
};
|
||
|
||
const { today, tomorrow } = HIGH_TEMPERATURES;
|
||
```
|