Я начал использовать итераторы, где релевантный. Производительность разумна, однако что еще более важно, она позволяет Вам инкапсулировать логику цикличного выполнения:
function createIterator(x) {
var i = 0;
return function(){
return x[i++];
};
}
Затем для использования:
var iterator=createIterator(['a','b','c','d','e','f','g']);
iterator();
возвраты "a";
iterator();
возвраты "b";
и так далее.
, Чтобы выполнить итерации целого списка и отобразить каждый объект:
var current; while(current=iterator()) { console.log(current); }
знать, что вышеупомянутое только приемлемо для итерации списка, который содержит значения "non-falsy". Если этот массив содержал какой-либо из:
предыдущий цикл остановил бы в том объекте, не всегда, что Вы хотите/ожидаете.
Для предотвращения этого использования:
var current;
while((current=iterator())!==undefined)
{
console.log(current);
}