Files
30-seconds-of-code/articles/snippets/javascript-copy-array.md
2023-05-01 23:10:21 +03:00

1.7 KiB

title, shortTitle, type, tags, author, cover, excerpt, dateModified
title shortTitle type tags author cover excerpt dateModified
How can I clone an array in JavaScript? Clone an array question
javascript
array
chalarangelo colorful-plastic Pick up a few new tricks which you can use to clone arrays in JavaScript. 2021-06-12T19:30:41+03:00

JavaScript provides quite a few ways to clone an array, most of which are pretty similar in terms of performance and results. Here's a quick rundown of some of the available options.

The spread operator

ES6 introduced the spread operator (...), which provides probably the easiest and most common way to create a shallow clone of an array.

let x = [1, 2, 3, 4];
let y = [...x];

Array.from()

Array.from() has a very powerful API that can be used for many different things, including creating a copy of an array.

let x = [1, 2, 3, 4];
let y = Array.from(x);

Array.prototype.slice()

Similarly to the spread operator, Array.prototype.slice() can be used to create a shallow copy of an array.

let x = [1, 2, 3, 4];
let y = x.slice();

Array.prototype.map()

Looking into one of the more unorthodox options, Array.prototype.map() can be used to map each element of an array to itself to create a new array.

let x = [1, 2, 3, 4];
let y = x.map(i => i);

Array.prototype.filter()

Similarly, Array.prototype.filter() can be used to return true for each and every element, resulting in a new array with all of the original array's elements.

let x = [1, 2, 3, 4];
let y = x.filter(() => true);

Object.assign()

Finally, Object.assign() can be used in the exact same way as it's used to create a clone of an object, but for an array instead.

let x = [1, 2, 3, 4];
let y = Object.assign([], x);