Javascript Array copyWithin()

The JavaScript Array copyWithin() method shallow copies array elements to another position in the array, overwriting the existing values.

The syntax of the copyWithin() method is:

arr.copyWithin(target, start, end)

Here, arr is an array.


copyWithin() Parameters

The copyWithin() method takes in:

  • 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 end copying elements from. (exclusive) If omitted, it will copy until last index.

Notes:

  • If any of the arguments are negative, index will be counted from backwards. For example, -1 represents the last element and so on.
  • If target value is after start, the copied sequence is trimmed to fit arr.length.

Return value from copyWithin()

  • Returns the modified array after copying the elements.

Notes:

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

Example: Using copyWithin() method

let array = [1, 2, 3, 4, 5, 6];

// target: from second-to-last element, start: 0, end: array.length
let returned_arr = array.copyWithin(-2);
console.log(returned_arr); // [ 1, 2, 3, 4, 1, 2 ]
// modifies the original array
console.log(array); // [ 1, 2, 3, 4, 1, 2 ]

array = [1, 2, 3, 4, 5, 6];
// target: 0, start copying from 5th element
array.copyWithin(0, 4);
console.log(array); // [ 5, 6, 3, 4, 5, 6 ]

array = [1, 2, 3, 4, 5, 6];
// target: 1, start copying from 3rd element to second-to-last element
array.copyWithin(1, 2, -1); // -1 = last element (exclusive)
console.log(array); // [ 1, 3, 4, 5, 5, 6 ]

Output

[ 1, 2, 3, 4, 1, 2 ]
[ 1, 2, 3, 4, 1, 2 ]
[ 5, 6, 3, 4, 5, 6 ]
[ 1, 3, 4, 5, 5, 6 ]