Seit Javascript 1.7 gibt es ein Iterator- Objekt, das Folgendes ermöglicht:
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();
Gibt es so etwas in node.js?
Im Moment benutze ich:
function Iterator(o){
/*var k=[];
for(var i in o){
k.push(i);
}*/
var k=Object.keys(o);
return {
next:function(){
return k.shift();
}
};
}
Dies führt jedoch zu einem hohen Overhead, da alle Objektschlüssel gespeichert werden k.
createNodeIteratorfür DOM-Elemente zu sein, ich habe nicht einmal ein DOM;) @ c69: Ich speichere alle Daten im keysObjekt und das valueist nur auf 1(ungefähr 20 MB in 700k Schlüsseln) eingestellt, in der Tat für Jetzt ignoriere ich nur diesen 'Overhead', aber ich würde eine bessere Lösung bevorzugen :)