ES6 迭代器
把一个对象变成可迭代对象
let authors = { allAuthors: { fiction: ['Agla', 'Skks', 'LP'], scienceFiction: ['Neal', 'Arthru', 'Ribert'], fantasy: ['J.R.Tole', 'J.M.R', 'Terry P.K'] }, Addres: [] } authors[Symbol.iterator] = function * () { let allAuthors = this.allAuthors let keys = Reflect.ownKeys(allAuthors) let values = [] while (1) { if (keys.length > 0) { yield * allAuthors[keys[0]] keys.shift() } else { break } } } for (let v of authors) { console.log(v) }
将authos里面的allAuthors对象的值变为可迭代对象,并且全部遍历取出
注意点:
1. Symbol.iterator是固定写法,内部传入一个生成器即可。
浙公网安备 33010602011771号