即使迭代的语法糖还没有实现,你可能仍然可以使用迭代器。
http://www.2ality.com/2012/06/for-of-ff13.html解释
特殊方法__iterator__
返回一个迭代器对象。这样的对象有一个方法,该方法next()
要么返回当前迭代序列中的下一个元素,要么在StopIteration
没有更多元素时抛出。
所以你应该能够使用
for (var it = mySet.__iterator__();;) {
var element;
try {
element = it.next();
} catch (ex) {
if (ex instanceof StopIteration) {
break;
} else {
throw ex;
}
}
// Do something with element
}
您还可以定义 for...of like 的功能版本
function forOf(collection, f) {
// jQuery.each calling convention for f.
var applyToElement = f.bind(/* this */ collection, /* index */ void 0);
for (var it = collection.__iterator__();;) {
var element;
try {
element = it.next();
} catch (ex) {
if (ex instanceof StopIteration) {
break;
} else {
throw ex;
}
}
// jQuery.each return convention.
if (applyToElement(element) === false) { break; }
}
}