在前端开发中,复制数组是经常用到的功能。现在老k为大家总结一下javascript中复制数组的三种方式。
<b>1.普通的for循环</b>
这是一种使用最普遍的方式。利用js的for循环再生成一个相同的数组。代码如下:
输出:
[1,2,3] [1,2,3]
为了验证arr2不是简单的类型引用,我们可以对arr2进行一个小操作,验证arr2确实是arr1的复制品。代码如下:
[1,2,3] [1,2]
对arr2进行操作,不影响arr1。由此验证,arr2是arr1的复制品。当然这种方式比较繁琐。
<b>2.es6的array.from()</b>
es6的array.from 方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括es6新增的数据结构set和map)。我们可以利用这个特性来快速复制数组。代码如下:
<b>3.es6的扩展运算符(...)</b>
这是es6规范新加的一种运算符,它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列。我们可以利用扩展运算符的特性来快速复制数组。代码如下:
<a href="https://mp.weixin.qq.com/s?__biz=mjm5oda2mdiyma==&mid=2247483877&idx=1&sn=356954f027fdddbea8516d56529fb1c1&chksm=a6d1c83691a6412035f0a7527d902148b39f5c4b6ebc976354e67c5cbafb643f66b97fb3eef8&mpshare=1&scene=1&srcid=0806obsmgtjzaewsbgsi9m03&key=494b2a6a03370d4fe2210ecea10691324747110c3a9519b639c23cf1481967ce01fc29b4d7aaeb1eac0c2bf7cf2d518cbb47f1cae2c5ee310ddaa925cd5dfee48a351b06761d7b86a3af03da114534c1&ascene=0&uin=odi5mdu3odiy&devicetype=imac+macbookair7%2c2+osx+osx+10.12.6+build(16g29)&version=12020810&nettype=wifi&fontscale=100&pass_ticket=bkcydyfa%2fjxbtva3mxm32p3dtg%2bhz0vxraf0xiwbyt9h2ql9y4tqwtdj%2byccx7jo" target="_blank">查看公众号文章</a>
欢迎关注个人公众号,查看更多好文。