How to clone an array in ES6?

王林
Release: 2023-09-12 08:09:03
forward
1372 people have browsed it

如何在 ES6 中克隆数组?

In ES5, we use the concat method to copy an array. Additionally, some developers use the slice() method, which slices all elements of the referenced array and creates a new array by passing 0 as argument.

Example

Users can follow the example below to clone an array using the slice() method. We have created array1 which contains values of different data types. After that, we copy array1 using slice() method and store it in "clone" variable.

  

Using the slice() method to clone the array in JavaScript

Copy after login

Users have already seen how we can clone arrays in ES5.

Additionally, users can consider copying arrays just like ordinary variables such as strings, numbers, and Boolean values using the assignment operator.

Users may encounter problems when copying arrays using assignment operators. Let us understand it through the following example.

Copy array using assignment operator

In the example below, the string array contains various strings. We have assigned the strings array to the strings2 array. After that, we push the new string value into the strings2 array.

Example

  

Using the assignment operator to clone the array in JavaScript

Copy after login

In the above output, the user can observe that when we push the string value to the strings2 array, it is also pushed to the strings array. Why does this happen?

Here, the concepts of mutable and immutable objects come into play.

Mutable objects and immutable objects

In JavaScript, arrays and objects are mutable, which means we can change their values after initializing them after creating them. Therefore, the strings2 array does not exist in the above example. When we assign the strings array to the strings2 array, it generates a reference to the strings array. So whenever we change the strings2 array, it also changes the strings array.

Therefore, we need to create an actual copy of the array without referencing the other array

Now, let’s learn how to clone an array in ES6.

Clone an array using the spread operator (...) in ES6

The syntax of the expansion operator is three dots (...). We can use this to spread iterable objects like arrays. The spread operator creates a new copy of an array or object.

grammar

Users can copy arrays using the spread operator according to the following syntax.

let booleansCopy = [...booleans];
Copy after login

Example

In the example below, we have created a boolean array containing different boolean values. After that, we create a copy of the boolean array using the spread operator and assign the copy to the booleanCopy variable.

In the output, the user can observe that the booleanCopy array contains the same values as the boolean array contains.

  

Using the spread operator to clone the array in JavaScript

Copy after login

Example

In the example below, the dimensions array contains different numerical values. We created a copy of the size array using the spread operator and stored the array in the sizedClone variable using the assignment operator.

Afterwards, we push 60 into the sizeClone array.

  

Using the spread operator to clone the array in JavaScript

Copy after login

In the above output, the user can observe that 60 is reflected in thesizesClone arraybut not in the Sizes array because we create an actual copy of the array instead like in example 2 Reference array.

Now, users clearly understand why assignment operators are not used in ES6 and whyspread operators are usedto clone arrays.

The above is the detailed content of How to clone an array in ES6?. For more information, please follow other related articles on the PHP Chinese website!

source:tutorialspoint.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!