在 ES5 中,我们使用 concat 方法来复制数组。此外,一些开发人员使用 slice() 方法,通过传递 0 作为参数来对引用数组的所有元素进行切片并创建一个新数组。,用户可以按照下面的示例使用 slice() 方法克隆数组。我们创建了 array1,其中包含不同数据类型的值。之后,我们使用 slice() 方法复制 array1 并将其存储在“clone”变量中。,登录后复制,用户已经了解了我们如何在 ES5 中克隆数组。,此外,用户可以考虑复制数组,就像使用赋值运算符复制字符串、数字和布尔值等普通变量一样。,用户在使用赋值运算符复制数组时可能会遇到问题。让我们通过下面的例子来理解它。,在下面的示例中,字符串数组包含各种字符串。我们已将 strings 数组分配给 strings2 数组。之后,我们将新的字符串值推送到 strings2 数组中。,登录后复制,在上面的输出中,用户可以观察到,当我们将字符串值推送到 strings2 数组时,它也推送到 strings 数组。为什么会发生这种情况?,在这里,可变和不可变对象的概念发挥了作用。,在 JavaScript 中,数组和对象是可变的,这意味着我们可以在创建它们后初始化它们后更改它们的值。因此,上例中不存在 strings2 数组。当我们将 strings 数组分配给 strings2 数组时,它会生成对 strings 数组的引用。因此,每当我们更改 strings2 数组时,它也会更改 strings 数组。,因此,我们需要创建数组的实际副本,而不引用其他数组,现在,让我们学习如何在 ES6 中克隆数组。,展开运算符的语法是三个点 (…)。我们可以用它来像数组一样传播可迭代对象。扩展运算符创建数组或对象的新副本。,用户可以按照以下语法使用扩展运算符复制数组。,登录后复制,在下面的示例中,我们创建了布尔数组,其中包含不同的布尔值。之后,我们使用扩展运算符创建了布尔数组的副本,并将该副本分配给 booleanCopy 变量。,在输出中,用户可以观察到 booleanCopy 数组包含与 boolean 数组包含的值相同的值。,登录后复制,在下面的示例中,尺寸数组包含不同的数值。我们使用展开运算符创建了 size 数组的副本,并使用赋值运算符将该数组存储在sizedClone 变量中。,之后,我们将 60 推入 sizeClone 数组。,登录后复制,在上面的输出中,用户可以观察到 60 反映在 sizesClone 数组中,但没有反映在 Sizes 数组中,因为我们创建了数组的实际副本,而不是像示例 2 中那样引用数组.,现在,用户清楚地明白为什么在 ES6 中不使用赋值运算符以及为什么使用扩展运算符来克隆数组。,以上就是如何在 ES6 中克隆数组?的详细内容,更多请关注www.92cms.cn其它相关文章!