Skip to main content

Що робить copyWithin()?

метод copyWithin() - один з найбільш "недооцінених", але потужних інструментів для роботи з масивами у JavaScript.

Він дозволяє скопіювати частину елементів масиву в інше місце всередині цього ж масиву, не змінюючи його довжину.

Синтаксис:

javascript
arr.copyWithin(target, start, end);
ПараметрОпис
targetІндекс, куди будуть скопійовані елементи
startІндекс, звідки почати копіювання (включно)
endІндекс, де закінчити (не включаючи цей індекс). Необов'язково. Якщо не вказати - копіює до кінця масиву

Приклад 1 - базовий

javascript
const arr = [1, 2, 3, 4, 5]; arr.copyWithin(0, 3); console.log(arr); // [4, 5, 3, 4, 5]

Розшифровка:

  • target = 0 → вставляємо з позиції 0
  • start = 3 → починаємо копіювати з індексу 3
  • копіюємо [4, 5]
  • результат: [4, 5, 3, 4, 5]

Приклад 2 - з start і end

javascript
const arr = [1, 2, 3, 4, 5]; arr.copyWithin(1, 3, 5); console.log(arr); // [1, 4, 5, 4, 5]
  • Копіюємо елементи [4, 5] (від 3 до 5, не включаючи 5)
  • Вставляємо з позиції 1

Приклад 3 - від'ємні індекси

javascript
const arr = [10, 20, 30, 40, 50]; arr.copyWithin(-2, 0, 2); console.log(arr); // [10, 20, 30, 10, 20]
  • -2 → означає "вставити починаючи з другого елемента з кінця"
  • копіюємо [10, 20] і вставляємо в кінець.

Особливості поведінки

ВластивістьОпис
Мутує масивТак
ПовертаєЗмінений масив
Довжина масивуНе змінюється
Копіює всередині масивуТак
Значення, що повертаєтьсяПосилання на той самий масив (this)

Приклад практичного застосування:

Можна використовувати для "зсуву" значень всередині масиву без створення нового:

javascript
const buffer = [1, 2, 3, 4, 5]; buffer.copyWithin(1, 0, 3); console.log(buffer); // [1, 1, 2, 3, 5]

Коротко:

Що робитьКопіює частину масиву в інше місце всередині нього
Змінює вихідний масивТак
ПовертаєСам масив
Не змінює довжинуТак
Приклад[1,2,3,4,5].copyWithin(0,3) → [4,5,3,4,5]

Підсумок: copyWithin() - це спосіб перемістити або дублювати елементи всередині масиву без створення нового масиву і без зміни довжини.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.