一、用 for....of 循环,经常会遇到错误:
二、报错原因:
for...of 循环仅适用于迭代。 而普通对象不可迭代。
三、解决方式:
我们可以通过将类数组(array-like)对象转换为数组来解决。该对象将具有一个 length 属性,其元素必须可以被索引。即:
Array.from()
该方法就是将一个类数组对象或者可遍历(可迭代)对象转换成一个真正的数组(新的,浅拷贝的数组实例)。
注:
- 那么什么是类数组对象呢?所谓类数组对象,最基本的要求就是具有length属性的对象。
- 类数组---> 数组条件:
1)该类数组对象必须具有length属性,用于指定数组的长度。如果没有length属性,那么转换后的数组是一个空数组。
2)该类数组对象的属性名必须为数值型或字符串型的数字
四、为什么用for...of
- for..of适用遍历数/数组对象/字符串/map/set等拥有迭代器对象的集合.但是不能遍历对象,因为没有迭代器对象.与forEach()不同的是,它可以正确响应break、continue和return语句
- for-of循环不支持普通对象,但如果你想迭代一个对象的属性,你可以用for-in循环(这也是它的本职工作)或内建的Object.keys()方法。
参考资料:
https://www.cnblogs.com/zjx304/p/10687017.html
https://www.cnblogs.com/jf-67/p/8440758.html
https://blog.csdn.net/weixin_36706903/article/details/86153740