【发布时间】:2018-05-24 05:51:30
【问题描述】:
.next() 方法返回一个具有两个属性的对象,即 value 和 done。是否有一种方法可以将键与值一起返回并完成?代码如下:
const james = {
name: 'James',
height: `5'10"`,
weight: 185,
[Symbol.iterator]:function*(){
for(let key of Object.keys(this)) {
yield this[key];
}
}
};
const iterator = james[Symbol.iterator]();
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
这段代码的输出是:
{ value: 'James', done: false }
{ value: '5\'10"', done: false }
{ value: 185, done: false }
预期输出:
{ value: 'James', key: 'name', done: false }
{ value: '5\'10"', key: 'height', done: false }
{ value: 185, key: 'weight', done: false }
【问题讨论】:
-
对于生成器函数?不,他们只是发出一个值并完成。你想归还什么钥匙?你能不能把
yield你想要的所有数据都作为一个对象? -
对象属性的key:value对中的key
-
什么对象?请向我们展示整个用例。你是否像我猜的那样使用生成器?
-
好的..我会更新它..
-
我更新了代码..