Skip to content

Commit

Permalink
Дополняет доку
Browse files Browse the repository at this point in the history
  • Loading branch information
vitya-ne committed Jan 27, 2024
1 parent 7c255d8 commit 649f003
Showing 1 changed file with 19 additions and 1 deletion.
20 changes: 19 additions & 1 deletion js/array-copy-within/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ tags:

## Кратко

Метод `copyWithin()` копирует последовательную часть элементов массива из одного места в другое. Длина массива при этом не меняется.
Метод `copyWithin()` копирует последовательную часть элементов массива из одного места в другое. Длина массива при этом не меняется. Метод использует [поверхностное копирование (shallow copy) элементов](/js/shallow-or-deep-clone/).

## Пример

Expand Down Expand Up @@ -87,3 +87,21 @@ console.log(colors.copyWithin(2))
console.log(colors.copyWithin(2, 0))
// ['red', 'green', 'red', 'green']
```

💡 Если копируемые элементы массива являются объектами, то в результате работы метода `toSpliced()` скопированные элементы на новых позициях будут содержать ссылки, а не новые объекты. Изменение этих объектов будут видны на старых и новых позициях:

```js
const months = [['март', 'апрель'], 'июнь', 'июль', ['сентябрь']]

// скопируем последний элемент в начало массива
months.copyWithin(0, -1);
console.log(months)
// [['сентябрь'], 'июнь', 'июль', ['сентябрь']]

// изменим значение скопированного элемента:
months[0][0] = 'май'

// изменение так же видны в источнике копирования
console.log(months)
// [['май'], 'июнь', 'июль', ['май']]
```

0 comments on commit 649f003

Please sign in to comment.