Bei der Verwendung von bedingten Anweisungen innerhalb von forEach, wie zu erkennen, wenn jedes Kind konnte die Bedingung?
Beginnend mit einer FB DataSnapshot, ich will etwas, so dass, im Klartext, "wenn alle Kinder nicht den Zustand, ausführen etwas".
Hier ist, was ich jetzt habe:
appleappsRef.on('value', function (allApplesSnapshot){
allApplesSnapshot.forEach(function (appleSnapshot) {
if (condition) {
//execute code
}
});
});
Du musst angemeldet sein, um einen Kommentar abzugeben.
Pro die docs, Ihre forEach-callback kann return true Abbrechen enumeration und forEach() wird true zurückgeben, um zu signalisieren, dass die Aufzählung abgebrochen wurde.
Bedeutet dies, dass Sie tun können:
Array.alle
zurücktrue
wenn jedes element des array erfüllt die Funktion, die Sie übergeben haben (das heißt, die Funktion gibt true zurück, wenn bestanden, dass element). Um das zu testen, wenn jedes element von fehl eine Bedingung, dann einfach negiert die Bedingung innerhalb der Funktion.Beachten Sie, dass einige Browser nicht Unterstützung
Array.every
, aber jeder browser unterstütztArray.forEach
sollte auchArray.every
.Können Sie tun es mit .forEach durch eine Boolesche überblick zu behalten, wenn Sie jemals gefunden die Bedingung, um wahr zu sein:
Gut, man konnte immer Durchlaufen und jeden moment eines der Kinder geht Pause von der Methode irgendwie, ansonsten Feuer die Methode, die gefeuert werden sollte, wenn alle Kinder nicht. Sie können sogar mit einem boolean in diesem Fall.
Ex: Machen Sie einen boolean und nennen es allChildrenFailed und legen Sie es standardmäßig auf true. Gehen Sie durch die foreach-Schleife, und wenn jedes Kind vergeht, ändern Sie ihn auf false. Dann Feuer die Methode, die Sie müssen nach der Schleife nur, wenn allChildrenFailed wahr ist.