72 lines
2.5 KiB
Markdown
72 lines
2.5 KiB
Markdown
![]() |
---
|
|||
|
id: 587d7b89367417b2b2512b4b
|
|||
|
title: Використовуйте деструктивне привласнення для визначення змінних із масивів
|
|||
|
challengeType: 1
|
|||
|
forumTopicId: 301213
|
|||
|
dashedName: use-destructuring-assignment-to-assign-variables-from-arrays
|
|||
|
---
|
|||
|
|
|||
|
# --description--
|
|||
|
|
|||
|
ES6 створює деструктивні масиви так само легко, як і деструктивні об'єкти.
|
|||
|
|
|||
|
Однією з ключових відмінностей між спред оператором та деструктивним масивом є те, що спред оператор розпаковує весь вміст масиву в список, розділений комою. Отже, ви не можете вибрати, які елементи ви бажаєте призначити змінним.
|
|||
|
|
|||
|
Деструкція масиву дозволяє нам зробити це:
|
|||
|
|
|||
|
```js
|
|||
|
const [a, b] = [1, 2, 3, 4, 5, 6];
|
|||
|
console.log(a, b);
|
|||
|
```
|
|||
|
|
|||
|
В консолі відображатимуться значення `a` та `b` як `1, 2`.
|
|||
|
|
|||
|
Змінна `a` призначає перше значення масиву, а `b` присвоюється друге значення масиву. Також ми можемо отримати доступ до значення у масиві з деструкцією за допомогою коми для досягнення бажаного індексу:
|
|||
|
|
|||
|
```js
|
|||
|
const [a, b,,, c] = [1, 2, 3, 4, 5, 6];
|
|||
|
console.log(a, b, c);
|
|||
|
```
|
|||
|
|
|||
|
В консолі відображатимуться значення `a`, `b`, та `c` як `1, 2, 5`.
|
|||
|
|
|||
|
# --instructions--
|
|||
|
|
|||
|
Використайте привласнення для заміни значень `a` and `b`, так, що `a` отримує значення, збережене в `b`, і `b` отримує значення, збережене в `a`.
|
|||
|
|
|||
|
# --hints--
|
|||
|
|
|||
|
Значення `a` має бути `6`, після перегортання.
|
|||
|
|
|||
|
```js
|
|||
|
assert(a === 6);
|
|||
|
```
|
|||
|
|
|||
|
Значення `b` має бути `8`, після перегортання.
|
|||
|
|
|||
|
```js
|
|||
|
assert(b === 8);
|
|||
|
```
|
|||
|
|
|||
|
Ви повинні використовувати деструктивний масив, щоб замінити `a` та `b`.
|
|||
|
|
|||
|
```js
|
|||
|
assert(/\[\s*(\w)\s*,\s*(\w)\s*\]\s*=\s*\[\s*\2\s*,\s*\1\s*\]/g.test(code));
|
|||
|
```
|
|||
|
|
|||
|
# --seed--
|
|||
|
|
|||
|
## --seed-contents--
|
|||
|
|
|||
|
```js
|
|||
|
let a = 8, b = 6;
|
|||
|
// Only change code below this line
|
|||
|
```
|
|||
|
|
|||
|
# --solutions--
|
|||
|
|
|||
|
```js
|
|||
|
let a = 8, b = 6;
|
|||
|
[a, b] = [b, a];
|
|||
|
```
|