Cloning an array in JavaScript

Last Updated : 10 Feb, 2026

In JavaScript, cloning an array means creating a new array that contains the same elements as the original, ensuring the original array remains unchanged and independent.

  • It helps avoid unintended side effects when modifying arrays in your code.
  • The cloned array can be safely updated without affecting the original one.

Here are some different approaches to clone an array in JavaScript:

1. Using the Array.slice() Method

We use the slice method to create a shallow copy of an array. This method creates a new array with a subset of the elements from the original array.

JavaScript
const a = [1, 2, 3];
const b = a.slice();
console.log(b); 

Output
[ 1, 2, 3 ]

2. Using the spread Operator

Using the spread operator "..." is a concise and easy way to clone an array in JavaScript. The spread operator allows you to expand an array into individual elements, which can then be used to create a new array.

JavaScript
const a = [1, 2, 3];
const b = [...a];
console.log(b);

Output
[ 1, 2, 3 ]

3. Using the Array.from() Method

Using the Array.from() method is another way to clone an array in JavaScript. This method creates a new array from an existing array, using an optional mapping function to transform the values in the new array.

JavaScript
const a = [1, 2, 3];
const b = Array.from(a);
console.log(b);

Output
[ 1, 2, 3 ]

4. Using the Array.concat() Method

Using the Array.concat() method is another way to clone an array in JavaScript. This method creates a new array by concatenating two or more arrays together.

JavaScript
const a = [1, 2, 3];
const b = [].concat(a);
console.log(b);

Output
[ 1, 2, 3 ]

5. Using a for loop

In this approach, a for loop is used to iterate through each element of the original array and copy them one by one into a new array.

JavaScript
const a = [1, 2, 3];
const b = [];
for (let i = 0; i < a.length; i++) {
    b.push(a[i]);
}
console.log(b);

Output
[ 1, 2, 3 ]

6. Using the Array.map() Method

Using the Array.map() method is another way to clone an array in JavaScript. This method creates a new array by mapping each element from the original array to a new value.

JavaScript
const a = [1, 2, 3];
const b = a.map(x => x);
console.log(b);

Output
[ 1, 2, 3 ]

7. Using the Array.from() method with a map function

Using the Array.from() method with a map function is another way to clone an array in JavaScript. This method creates a new array by mapping each element from the original array to a new value using a provided function.

JavaScript
const a = [1, 2, 3];
const b = Array.from(a, x => x);
console.log(b);

Output
[ 1, 2, 3 ]

8. Using the Array.of() Method

The Array.of() method is used to create a new array by explicitly passing the elements of an existing array, resulting in a separate copy with the same values.

JavaScript
const a = [1, 2, 3];
const b = Array.of(...a);
console.log(b);

Output
[ 1, 2, 3 ]

9. Using the JSON.parse() and JSON.stringify() Methods

Using the JSON.parse() and JSON.stringify() methods is another way to clone an array in JavaScript. This method involves converting the original array to a JSON string and then parsing the JSON string to create a new array.

JavaScript
const a = [1, 2, 3];
const b = JSON.parse(JSON.stringify(a));
console.log(b);

Output
[ 1, 2, 3 ]

10. Using the Object.assign() Method

Using the Object.assign() method is another way to clone an array in JavaScript. This method creates a new array by copying the properties of the original array to a new object.

JavaScript
const a = [1, 2, 3];
const b = Object.assign([], a);
console.log(b);

Output
[ 1, 2, 3 ]

11. Using Array.reduce() Method

The Array.reduce() method executes a reducer function on each element of the array, resulting in a single output value. We can use it to construct a new array with the same elements as the original array.

Syntax:

array.reduce((accumulator, currentValue, currentIndex, array) => { ... }, initialValue);
JavaScript
// Input array
const a = [1, 2, 3, 4];

// Cloning the array using reduce
const b = a.reduce((acc, val) => {
  acc.push(val);
  return acc;
}, []);

// Display the original and cloned arrays
console.log("Original Array:", a);
console.log("Cloned Array:", b);

Output
Original Array: [ 1, 2, 3, 4 ]
Cloned Array: [ 1, 2, 3, 4 ]

Note: Thus, When cloning an array, it is important to consider the complexity of the data and the performance requirements of the application.

12. Using the Array.flatMap() Method

The flatMap() method can be used to clone an array by mapping each element to itself, creating a new array while also supporting flattening behavior.

  • It applies a mapping function and then flattens the result into a new array.
  • Mainly used for flattening, but works for simple array cloning as well.
JavaScript
const a = [1, 2, 3, 4, 5];

const b = a.flatMap(element => [element]);

console.log(b);
console.log(a === b);

Output
[ 1, 2, 3, 4, 5 ]
false

Use Cases for Array Cloning

Array cloning is useful when you want to work with array data safely, ensuring the original array and its values remain unchanged during operations or function calls.

  • To sort, filter, or map data without mutating the original array.
  • To prevent functions from modifying the original array.
  • To preserve the original array for future use.
  • To avoid accidental changes to objects or nested arrays within the array.
Comment