Introduction
In JavaScript, arrays are a powerful data type that allows you to store and manipulate collections of items. Sometimes, you may need to create a copy of an array for use in your code. There are a few different ways to create a copy of an array in JavaScript, depending on your needs and the structure of the array you are working with.
There are a few different ways to create a copy of an array in JavaScript, depending on your needs and the structure of the array you are working with.
In this article, we’ll explore three common approaches for copying
arrays in JavaScript: using the spread operator (...), using the
slice() method, and using the JSON.parse() and JSON.stringify()
methods.
Method-1: Using the spread operator (...)
One way to create a copy of an array is to use the spread operator
(...). The spread operator allows you to expand an iterable (such
as an array) into a list of elements. You can use the spread operator to
create a copy of an array by enclosing the array in square brackets
([]) and using the spread operator to expand the array.
Here’s an example of how to use the spread operator to create a copy of an array:
const originalArray = [1, 2, 3];
const copiedArray = [...originalArray];
console.log(copiedArray);
Output
[ 1, 2, 3 ]
In this example, we have an array called originalArray that we want to
copy. We create a new array called copiedArray and use the spread
operator to expand the elements of originalArray into the new array.
This creates a shallow copy of the array, meaning that the new array
contains the same elements as the original array, but the elements
themselves are not copied.
The spread operator is a convenient and concise way to create a copy of an array, but it only works for shallow arrays. If the array contains nested arrays or objects, the spread operator will only create a shallow copy of the top-level elements, and the nested elements will be shared between the original array and the copy.
Method-2: Using the slice() method
Another way to create a copy of an array is to use the slice()
method, which returns a new array that includes a portion of the
elements of the original array. You can use this method to create a copy
of an entire array by calling it with no arguments.
Here’s an example of how to use slice() to create a copy of an
array:
const originalArray = [1, 2, 3];
const copiedArray = originalArray.slice();
console.log(copiedArray);
Output
[ 1, 2, 3 ]
In this example, we have an array called originalArray that we
want to copy. We create a new array called copiedArray and call
the slice() method on originalArray with no arguments. This
creates a shallow copy of the array, meaning that the new array contains
the same elements as the original array, but the elements themselves are
not copied.
Like the spread operator, slice() only creates a shallow copy of
an array. If the array contains nested arrays or objects, the
slice() method will only create a shallow copy of the top-level
elements, and the nested elements will be shared between the original
array and the copy.
Method-3: Using the JSON.parse() and JSON.stringify() methods
A third way to create a copy of an array is to use the
JSON.parse() and JSON.stringify() methods, which allow you
to convert a JavaScript object to a JSON string and vice versa. You can
use these methods to create a deep copy of an array, meaning that the
copy contains copies of all the elements in the original array,
including any nested arrays or objects.
Here’s an example of how to use JSON.parse() and
JSON.stringify() to create a deep copy of an array:
const originalArray = [1, 2, [3, 4], { a: 5, b: 6 }];
const copiedArray = JSON.parse(JSON.stringify(originalArray));
console.log(copiedArray);
Output
[ 1, 2, [ 3, 4 ], { a: 5, b: 6 } ]
In this example, we have an array called originalArray that contains
nested arrays and objects. We create a new array called copiedArray
and use the JSON.stringify() method to convert originalArray to a
JSON string. We then use the JSON.parse() method to parse the JSON
string back into a JavaScript object, which creates a deep copy of the
array.
The JSON.parse() and JSON.stringify() methods are a reliable way to
create a deep copy of an array, but they can be slower and more
resource-intensive than the other methods, especially for large or
complex arrays.
Method-4: Using the map method
The fourth way to create a copy of an array is to use the map method
which allows you to call a defined callback function on each element of
an array and returns an array that contains the results. Here, you can
use the map method by returning the element within the callback
function that will be passed to the method.
Here’s an example of how to use the map method to copy an array in
JavaScript.
const originalArray = [1, 2, 3];
const copiedArray = originalArray.map((x) => x);
console.log(copiedArray);
Output
[ 1, 2, 3 ]
In this example, we make use of the map() method is called on
originalArray and it creates a new array with the same elements as
originalArray.
The map() method takes a callback function as its argument. In
this case, the callback function is (x) => x. This is a so-called
“arrow function” in JavaScript, which is a concise way to write a
function. The arrow function takes a single argument x and returns
it. In this case, it means that the callback function simply passes each
element of the original array to the new array, without modifying it.
Method-5: Using the filter method
The fifth way to create a copy of an array is to use the filter method
which returns the elements of an array that meet the condition specified
in a callback function. If we are to copy all the elements, we need a
condition that will always be true. Similar to the way we used the
map method earlier, we simply return true for every element.
Here’s an example of how to use the filter method to copy an array in
JavaScript.
const originalArray = [1, 2, 3];
const copiedArray = originalArray.filter(() => true);
console.log(copiedArray);
Output
[ 1, 2, 3 ]
In this code, we declare and initialize an array called originalArray
with values: 1, 2, and 3. Then, we create a new array called
copiedArray by calling the filter method on originalArray. In this
case, the callback function is an anonymous function that always returns
true. This means that all elements of originalArray will pass the
test and will be included in the new copiedArray array.
Method-6: Using the concat method
The last approach to copy an array in JavaScript is the use of the
method called concat. The method combines two or more arrays. This
method returns a new array without modifying any existing arrays. So to
copy an array, we will simply concat the array to be copied with an
empty array.
Here’s how we achieve the operation with the concat method.
const originalArray = [1, 2, 3];
const copiedArray = originalArray.concat();
console.log(copiedArray);
Output
[ 1, 2, 3 ]
Summary
There are a few different ways to create a copy of an array in
JavaScript, depending on your needs and the structure of the array you
are working with. You can use the spread operator (...) to create a
shallow copy of an array, the slice() method to create a shallow copy
of an array, or the JSON.parse() and JSON.stringify() methods to
create a deep copy of an array. Also, the map, filter and concat
methods are available to copy arrays in JavaScript. Choose the method
that best meets your needs and is appropriate for the structure of the
array you are working with.
References
Spread syntax (…) - JavaScript
| MDN (mozilla.org)
Array.prototype.slice() -
JavaScript | MDN (mozilla.org)
JSON.parse() - JavaScript | MDN
(mozilla.org)
JSON.stringify() - JavaScript |
MDN (mozilla.org)

![How to copy array in JavaScript? [SOLVED]](/javascript-copy-array/copy-array-js.jpg)