जावास्क्रिप्ट 1.7 के बाद से एक Iterator ऑब्जेक्ट है, जो इसे अनुमति देता है:
var a={a:1,b:2,c:3};
var it=Iterator(a);
function iterate(){
try {
console.log(it.next());
setTimeout(iterate,1000);
}catch (err if err instanceof StopIteration) {
console.log("End of record.\n");
} catch (err) {
console.log("Unknown error: " + err.description + "\n");
}
}
iterate();
वहाँ नोड में इस तरह से कुछ है। जेएस?
अभी मैं उपयोग कर रहा हूँ:
function Iterator(o){
/*var k=[];
for(var i in o){
k.push(i);
}*/
var k=Object.keys(o);
return {
next:function(){
return k.shift();
}
};
}
लेकिन वह सभी ऑब्जेक्ट कुंजियों को संग्रहीत करके बहुत अधिक ओवरहेड बनाता है k
।
createNodeIterator
है कि DOM तत्वों के लिए है, मेरे पास DOM भी नहीं है;) @ c69: मैं keys
ऑब्जेक्ट के सभी डेटा को स्टोर करता हूं और value
बस 1
(700k कीज़ में लगभग 20MB) सेट किया जाता है , वास्तव में, के लिए अब मैं सिर्फ इस 'उपरि' की अनदेखी कर रहा हूं, लेकिन मैं एक बेहतर समाधान पसंद करूंगा :)