【发布时间】:2018-08-10 12:08:45
【问题描述】:
这是我写的
myObj = {
x: 1,
y: 2,
z: 3,
};
myObj[Symbol.iterator] = function* () {
for (let val of Object.values(this))
yield val;
};
for(let x of myObj)
console.log(x); // 1,2,3
这可行,但对我来说看起来不必要的冗长。有没有更直接的表达方式?基本上,我正在寻找的是一个简单的表达式,它说“这个对象的迭代器是它的值迭代器”。我试过了
myObj[Symbol.iterator] = function () {
return Object.values(this)[Symbol.iterator]
}
这没用。
【问题讨论】:
-
你实际上并没有调用
[Symbol.iterator]方法
标签: javascript ecmascript-6 iterator