Open In App

Clone array in ES6

Last Updated : 14 Oct, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

The spread operator in ES6 is used to clone an array, whereas the slice() method in JavaScript is an older way that provides 0 as the first argument. These methods create a new, independent array and copy all the elements of oldArray to the new one i.e. both these methods do a shallow copy of the original array.

Example

javascript
// Cloning array using spread operator- ES6
const oldArray = ["dog1", "dog2", "dog3"];

const clonedArrayES6 = [...oldArray];

// ["dog1", "dog2", "dog3"]
console.log(clonedArrayES6);

Output
[ 'dog1', 'dog2', 'dog3' ]

Syntax: 

// Older way
var clonedArray = oldArray.slice(0)

// ES6 way: spread operator
var clonedArrayES6 = [...oldArray]

Equality and sameness

  • The = operator assigns a reference to the original array instead of copying its elements.
  • The spread operator (...) creates a new array with the same values but different references.
  • = results in a shallow reference, meaning changes to one array affect the other.
  • The spread operator produces a shallow copy, so the new array is independent but only one level deep.
  • The new array from the spread operator has the same values but is not the same object as the original array.

Example: This example shows the use of the above-explained approach.

javascript
// Equality and sameness in cloning array

const oldArray = ["dog1", "dog2", "dog3"];

const clonedArrayES6 = [...oldArray];
const newArray = oldArray;

// False, i.e. shallow copy
console.log(clonedArrayES6 === oldArray)

// True, i.e. deep copy
console.log(newArray === oldArray)

Output
false
true

Note: All the above examples can be tested by typing them within the script tag of HTML or directly into the browser’s console.


Explore