Javascript Array copyWithin()

In this tutorial, you will learn about the JavaScript Array copyWithin() method with the help of examples.

The copyWithin() method copies array elements from one position to another in the given array.

Example

let words = ["apple", "ball", "cat", "dog"];

// copies element from index 0 to index 3 words.copyWithin(3, 0);
// modifies the original array console.log(words); // Output: // [ ''apple'', ''ball'', ''cat'', ''apple'' ]

copyWithin() Syntax

The syntax of the copyWithin() method is:

arr.copyWithin(target, start, end)

Here, arr is an array.


copyWithin() Parameters

The copyWithin() method can take three parameters:

  • target - The index position to copy the elements to.
  • start (optional) - The index position to start copying elements from. If omitted, it will copy from index 0.
  • end (optional) - The index position to stop copying elements from (end element not included). If omitted, it will copy until the last index.

Notes:

  • If any of the arguments are negative, the index will be counted backward. For example, -1 represents the last element, and so on.

copyWithin() Return Value

  • Returns the modified array after copying the elements.

Notes: The copyWithin() method:

  • overwrites the original array.
  • does not change the length of the original array.

Example 1: Using copyWithin() Method

let numbers = [1, 2, 3, 4, 5];

// copying element located at 4th index to 0th index numbers.copyWithin(0, 4);
// modifies the original array console.log(numbers); // [ 5, 6, 3, 4, 5 ] let letters = ["a", "b", "c", "d"];
// copying element located at 1st index to 2nd index letters.copyWithin(2, 1);
// modifies the original array console.log(letters); // [ 'a', 'b', 'b', 'c' ]

Output

[ 5, 2, 3, 4, 5 ]
[ 'a', 'b', 'b', 'c' ]

In the above example, we have used the copyWithin() method to copy the element from one index to another in the arrays- numbers and letters.

numbers.copyWithin(0, 4) copies element located at start i.e. index 4 to target i.e. index 0 and letters.copyWithin(2, 1) copies element from index 1 to index 2.


Example 2: copyWithin() with Three Parameters

let laptops = ["dell", "hp", "acer", "asus"];

// copying elements from index 2 to 4(excluding 4) to index 0 laptops.copyWithin(0, 2, 4);
// modifies the original array console.log(laptops); // [ 'acer', 'asus', 'acer', 'asus' ]

Output

[ 'acer', 'asus', 'acer', 'asus' ]

In the above example, we have passed three parameters- target, start, and end in the copyWithin method.

laptops.copyWithin(0, 2, 4) copies elements from index 2 to 4 (not including index 4) to index 0 and modifies the laptops array to [ 'acer', 'asus', 'acer', 'asus' ].


Example 3: copyWithin() with Negative Parameter

let evenNumbers= [2,4,6,8];

// passing negative index value -1 as target index evenNumbers.copyWithin(-1);
console.log(evenNumbers);

Output

[ 2, 4, 6, 2 ]

Here we have passed a negative index value -1 as the value for target in the copyWithin() method.

Since the passed argument is negative, the method counts the index backward so the target index is the last index.

evenNumbers.copyWithin(-1) copies the element at index 0(default start value) to last index.


Did you find this article helpful?