如何用JavaScript实现十种不同方法一步拷贝数组?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1946个文字,预计阅读时间需要8分钟。
JavaScript中我们常会遇到复制数组的场景,但有许多方式可以实现,下面简单梳理一下:
1.扩展运算符(浅复制)
自ES6出现以来,扩展运算符已成为最流行的方法。它是非常简便的:
JavaScript中我们经常会遇到拷贝数组的场景,但是都有哪些方式能够来实现呢,我们不妨来梳理一下。
1、扩展运算符(浅拷贝)
自从ES6出现以来,这已经成为最流行的方法。它是一个很简单的语法,但是当你在使用类似于React和Redux这类库时,你会发现它是非常非常有用的。
numbers = [1, 2, 3]; numbersCopy = [...numbers]; 这个方法不能有效的拷贝多维数组。数组/对象值的拷贝是通过引用而不是值复制。 // numbersCopy.push(4); console.log(numbers, numbersCopy); // [1, 2, 3] and [1, 2, 3, 4] // 只修改了我们希望修改的,原数组不受影响 // nestedNumbers = [[1], [2]]; numbersCopy = [...nestedNumbers]; numbersCopy[0].push(300); console.log(nestedNumbers, numbersCopy); // [[1, 300], [2]] // [[1, 300], [2]] // 由于公用引用,所以两个数组都被修改了,这是我们不希望的
2、for()循环(浅拷贝)
考虑到函数式编程变得越来越流行,我认为这种方法可能是最不受欢迎的。
本文共计1946个文字,预计阅读时间需要8分钟。
JavaScript中我们常会遇到复制数组的场景,但有许多方式可以实现,下面简单梳理一下:
1.扩展运算符(浅复制)
自ES6出现以来,扩展运算符已成为最流行的方法。它是非常简便的:
JavaScript中我们经常会遇到拷贝数组的场景,但是都有哪些方式能够来实现呢,我们不妨来梳理一下。
1、扩展运算符(浅拷贝)
自从ES6出现以来,这已经成为最流行的方法。它是一个很简单的语法,但是当你在使用类似于React和Redux这类库时,你会发现它是非常非常有用的。
numbers = [1, 2, 3]; numbersCopy = [...numbers]; 这个方法不能有效的拷贝多维数组。数组/对象值的拷贝是通过引用而不是值复制。 // numbersCopy.push(4); console.log(numbers, numbersCopy); // [1, 2, 3] and [1, 2, 3, 4] // 只修改了我们希望修改的,原数组不受影响 // nestedNumbers = [[1], [2]]; numbersCopy = [...nestedNumbers]; numbersCopy[0].push(300); console.log(nestedNumbers, numbersCopy); // [[1, 300], [2]] // [[1, 300], [2]] // 由于公用引用,所以两个数组都被修改了,这是我们不希望的
2、for()循环(浅拷贝)
考虑到函数式编程变得越来越流行,我认为这种方法可能是最不受欢迎的。

