有时候需要对对象进行遍历,下面提供一个比较方便的接口,
其基本思路是,首先得到对象的所有键(key),
然后将其放在yield* 后面.
yield* 可以通过 for … of … 循环遍历
具体实现如下:
function* iterEntries (obj) {
let keys = Object.keys(obj);
for ( let i =0; i < keys.length; i++) {
let key = keys[i];
yield [key, obj[key]];
}
}
// 调用 iterEntries
let myObj = { foo: 3 , bar: 7};
for ( let [key, value] of iterEntries(myObj)) {
console.log(key, value);
}
参考《ES6标准入门》(第3版)P351