91 lines
3.8 KiB
Markdown
91 lines
3.8 KiB
Markdown
---
|
||
title: Array Destructuring
|
||
localeTitle: Разрушение массива
|
||
---
|
||
# Разрушение массива
|
||
|
||
Деструктурирование - удобный способ извлечения нескольких значений из данных, хранящихся в массивах. Он может использоваться в местах, которые получают данные (например, левую часть задания). Эта функция представлена в `ECMAScript 6` .
|
||
|
||
Как извлечь значения задается с помощью шаблонов (читайте далее для примеров).
|
||
|
||
### Основное назначение переменных
|
||
```
|
||
var names = ['neel', 'meet', 'darshan'];
|
||
var [nameOne, nameTwo, nameThree] = names;
|
||
console.log(nameOne); // "neel"
|
||
console.log(nameTwo); // "meet"
|
||
console.log(nameThree); // "darshan"
|
||
```
|
||
|
||
### Назначение отдельно от декларации
|
||
|
||
Переменной может быть присвоено ее значение через деструктурирование отдельно от объявления переменной.
|
||
```
|
||
var a, b;
|
||
|
||
[a, b] = [1, 2];
|
||
console.log(a); // 1
|
||
console.log(b); // 2
|
||
```
|
||
|
||
### Значения по умолчанию
|
||
|
||
Переменной может быть присвоено значение по умолчанию, в случае, если значение, распакованное из массива, не `undefined` .
|
||
```
|
||
var a, b;
|
||
|
||
[a=5, b=7] = [1];
|
||
console.log(a); // 1
|
||
console.log(b); // 7
|
||
```
|
||
|
||
### Анализ массива, возвращаемого функцией
|
||
|
||
Всегда можно было возвращать массив из функции. Деструктурирование может сделать работу с возвращаемым значением массива более кратким.
|
||
|
||
В этом примере `getNames()` возвращает значения `['neel', 'meet']` качестве своего вывода, которые могут быть проанализированы в одной строке с деструктурированием.
|
||
```
|
||
function getNames() {
|
||
return ['neel', 'meet'];
|
||
}
|
||
|
||
var neel, meet;
|
||
[nameOne, nameTwo] = getNames();
|
||
console.log(nameOne); // neel
|
||
console.log(nameTwo); // meet
|
||
```
|
||
|
||
### Игнорирование некоторых возвращаемых значений
|
||
|
||
Вы можете игнорировать возвращаемые значения, которые вам не интересны:
|
||
```
|
||
function getNames() {
|
||
return ['neel', 'meet', 'darshan'];
|
||
}
|
||
|
||
var [nameOne, , nameThree] = getNames();
|
||
console.log(nameOne); // neel
|
||
console.log(nameThree); // darshan
|
||
```
|
||
|
||
Вы также можете игнорировать все возвращаемые значения:
|
||
```
|
||
[,,] = getNames();
|
||
```
|
||
|
||
### Присвоение остальной части массива переменной
|
||
|
||
При деструкции массива вы можете распаковать и назначить оставшуюся часть переменной переменной, используя шаблон rest:
|
||
```
|
||
var [a, ...b] = [1, 2, 3];
|
||
console.log(a); // 1
|
||
console.log(b); // [2, 3]
|
||
```
|
||
|
||
Обратите внимание, что `SyntaxError` будет `SyntaxError` , если задняя запятая используется с левой стороны с элементом отдыха:
|
||
```
|
||
var [a, ...b,] = [1, 2, 3];
|
||
// SyntaxError: rest element may not have a trailing comma
|
||
```
|
||
|
||
См. Также: **Разрушение массива** | [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment#Array_destructuring) |