.next() 方法返回一个具有两个属性的对象,即 value 和 did。是否有一种方法可以返回键和值并完成?代码如下:
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: key, value: this[key]};
const james = {
name: 'James',
height: `5'10"`,
weight: 185,
[Symbol.iterator]: function*() {
for (let key of Object.keys(this)) {
yield {
key: key,
value: this[key]
};
}
}
};
const iterator = james[Symbol.iterator]();
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
关于javascript - 生成键、值和完成的方法,格式为 {value : . 。 , key : .。 ,完成 : . 。},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47740526/