从generator到async
迭代器
-
什么叫类数组
-
有索引
-
有长度
-
能遍历
let likeArray = {
0:0,
1:1,
2:2,
3:3,
length:4
}let arr = […likeArray]//报错
- 上述并不是类数组,因为无法进行解构,说明迭代不了
- 数组能遍历,是因为内部有迭代的方法,通过Symblo可以给上述类型设置迭代方法,使之成为类数组
const { values } = require("lodash") let likeArray = { 0:0, 1:1, 2:2, 3:3, length:4, get [Symbol.toStringTag](){ return 'MyArray' }, [Symbol.iterator]:function(){ let index = 0 return { next:()=>{ return { value:this[index],done:index++==this.length } } } } }
-