介绍
这篇文章主要介绍JavaScript中拷贝数组的技巧,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
数组拷贝经常被误解,但这并不是因为拷贝过程本身,而是因为缺乏对JS如何处理数组及其元素的理解. JS中的数组是可变的,这说明在创建数组之后还可以修改数组的内容。
这意味着要拷贝一个数组,咱们不能简单地将旧数组分配给一个新变量,它也是一个数组。如果这样做,它们将共享相同的引用,并且在更改一个变量之后,另一个变量也将受到更改的影响。这就是我们需要克隆这个数组的原因。
接着来看看一些关于拷贝和克隆数组的有趣方法和技巧。
技巧1 -使用<代码>数组。片代码>方法
const numbers =, (1,, 2,, 3,, 4,, 5] const copy =, numbers.slice () copy.push(6),//,添加新项以证明不会修改原始数组 console.log(复制) console.log(数字)//,输出//,[1,2,3,4,5,6)//,[1,,2,,3,,4,,5]
技巧2 -使用<代码>数组。地图> 代码方法
const numbers =, (1,, 2,, 3,, 4,, 5] const copy =, numbers.map (=, num 祝辞,num ) copy.push(6),//,添加新项以证明不会修改原始数组 console.log(副本); console.log(数字);//,输出//,[1,2,3,4,5,6)//,[1,,2,,3,,4,,5]
技巧3 -使用<代码> Array.from 代码>方法
const numbers =, (1,, 2,, 3,, 4,, 5]; const copy =, Array.from (new 设定(数字)); copy.push(6),,//,添加新项以证明不会修改原始数组 console.log(副本); console.log(数字);//,输出//,[1,2,3,4,5,6)//,[1,,2,,3,,4,,5]
技巧4 -使用展开操作符
const numbers =, (1,, 2,, 3,, 4,, 5]; const copy =,数字[…]; copy.push(6),,//,添加新项以证明不会修改原始数组 console.log(副本); console.log(数字);//,输出,//,[1,2,3,4,5,6)//,[1,,2,,3,,4,,5]
技巧5 -使用<代码>数组。> 代码的方法和展开操作符
const numbers =, (1,, 2,, 3,, 4,, 5]; const copy =, Array.of数量(…); copy.push(6),,//,添加新项以证明不会修改原始数组 console.log(副本); console.log(数字);//,输出,//,[1,2,3,4,5,6)//,[1,,2,,3,,4,,5]
<代码> Array.of() 代码>方法创建一个具有可变数量参数的新数组实例,而不考虑参数的数量或类型。<代码> Array.of() 代码>和<代码> 代码>数组构造函数之间的区别在于处理整数参数:<代码> Array.of(7> 代码)创建一个具有<强>单个元素7的数组>强,而<代码>数组(7)代码>创建一个长度为7 <代码> 代码>的空数组(注意:这是指一个有7个<代码> 代码>空位(空的)的数组,而不是由<代码> 代码> 7个<代码>定义> 代码组成的数组)。
Array.of (7),,,,,,,,//, [7], Array.of (1,, 2,, 3);,//, [1, 2, 3] 数组(7),,,,,,,,,,,//,(,,,,,,,,,,,,) 阵列(1,,2,,3),,,,,//,[1,2,3]
技巧6 -使用数组构造函数和展开操作符
const numbers =, (1,, 2,, 3,, 4,, 5]; const copy =, new 数组(…数字); copy.push(6),,//,添加新项以证明不会修改原始数组 console.log(副本); console.log(数字);//,输出,//,[1,2,3,4,5,6)//,[1,,2,,3,,4,,5]
技巧7 -使用解构
const numbers =, (1,, 2,, 3,, 4,, 5]; const […]副本,=,数字; copy.push(6),,//,添加新项以证明不会修改原始数组 console.log(副本); console.log(数字);//,输出//,[1,2,3,4,5,6)//,[1,,2,,3,,4,,5]
技巧8 -使用数组。concat方法
const numbers =, (1,, 2,, 3,, 4,, 5]; const copy =, numbers.concat (); copy.push(6),,//,添加新项以证明不会修改原始数组 console.log(副本); console.log(数字);//,输出//,[1,2,3,4,5,6)//,[1,,2,,3,,4,,5]
技巧9 -使用<代码>数组。> 代码方法和展开操作符
const numbers =, (1,, 2,, 3,, 4,, 5]; let copy =, []; copy.push数量(…); copy.push(6),,//,添加新项以证明不会修改原始数组 console.log(副本); console.log(数字);//,输出//,[1,2,3,4,5,6)//,[1,,2,,3,,4,,5]JavaScript中拷贝数组的技巧