Array.from(arr)和[...arr]的区别
1、对于数组类型的数据,Array.from(arr)和[...arr]都能实现深拷贝的效果。
![Array.from(arr)和[...arr]的区别](https://exp-picture.cdn.bcebos.com/732a12e265e7340fd3153d9735b9763e20c2b4c1.jpg)
3、类数组对象的特点有以下四点:1.有数字索引2.有长度3.是个对象4.能被迭代展开我们刚刚获取的pList 这个类数组对象,可以很清楚的看到这4个特点。
![Array.from(arr)和[...arr]的区别](https://exp-picture.cdn.bcebos.com/bff8683e21c2bbd65cbd445c116186254093aec1.jpg)
5、根据类数组对象的特点,声明一个对象,但是暂时没有迭代器属性和迭代器方法。然后分别用Array.from(arr)和[...arr]输出一下结果,发现[...arr]会报错。
![Array.from(arr)和[...arr]的区别](https://exp-picture.cdn.bcebos.com/87645f93cee8b0049076f8bb79260d9a300ea9c1.jpg)
7、而报错的根本原因就是:对于那些没有部署 Iterator 接口的类似数组的对象,扩展运算符就无法将其转为真正的数组。
![Array.from(arr)和[...arr]的区别](https://exp-picture.cdn.bcebos.com/e86ba4b842406afe0d79d8711eee41c1b6279fc1.jpg)