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];
|
||
```
|