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.
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
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.
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.
Using the assignment operator to clone the array in JavaScript
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.
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.
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.
Users can copy arrays using the spread operator according to the following syntax.
let booleansCopy = [...booleans];
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
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
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!