In Ruby können wir die einzelnen Schleifen für ein Array unter Verwendung der 1) while-Schleife, 2) yield-Anweisung (um einen Wert an einen Block zu übergeben) und 3) Klasse Array (um die Methode für die Array-Klasse verfügbar zu machen) rekonstruieren); wie folgt:Javascript forEach Schleife - Wie man es rekonstruiert?
class Array
def reconstructed_each
n = 0
while n < self.length
yield(self[n])
n += 1
end
self
end
end
In Javascript rekonstruierte ich die ForEach-Schleife für ein Array auf ähnliche Weise; wie folgt:
Array.prototype.reconstructedforEach = function(c) {
var n = 0;
while (n < this.length) {
c(this[n]);
n += 1;
}
};
Der Teil bin ich mir nicht ganz sicher ist, wie die obige Funktion nur auf Arrays zu machen, aber nicht andere Arten von Objekt z.B. Nummer.
UPDATE: Ich habe es herausgefunden. Das obige Code-Snippet wurde entsprechend bearbeitet.
Ihr Ruby-Code gebrochen wird: Sie werden mit der '[]' Methode, aber das Verfahren ist nicht Teil des 'Enumerable' Protokolls. Gleiches gilt für "Länge". Außerdem sollte "each" einen "Enumerator" zurückgeben, wenn er ohne Block aufgerufen wird, was Ihre Methode nicht tut. –