Saisir la valeur de retour et de sortir de forEach en JavaScript?
Comment puis-je modifier ce code afin que je puisse saisir le terrain.DependencyFieldEvaluated valeur et de sortir de la fonction dès que je reçois cette valeur?
function discoverDependentFields(fields) {
fields.forEach(function (field) {
if (field.DependencyField) {
var foundFields = fields.filter(function (fieldToFind) { return fieldToFind.Name === field.DependencyField; });
if (foundFields.length === 1) {
return field.DependencyFieldEvaluated = foundFields[0];
}
}
});
}
quoi de mal avec la fonction ci-dessus ??
Pourquoi ne pas utiliser
vous ne pouvez pas sortir de forEach(), essayez d'utiliser
tout d'abord, il se plaint que tous les chemin retourne une valeur. deuxièmement, il continue sur la boucle, même lorsqu'il atteint la ligne de retour!
l' .forEach() la fonction est censés continuer la boucle, il ignore la valeur de retour de ta fonction. Si vous utilisez .tous les() à la place, vous pouvez sortir début mais n'est qu'en retournant false - c'est-à-dire que vous ne pouvez pas retourner directement une valeur pour le code en dehors de la boucle, vous devez affecter la valeur d'une variable déclarée à l'extérieur. Si vraiment ce que vous voulez faire est de retour, la valeur de la
Pourquoi ne pas utiliser
for
boucle au lieu de forEach
fonction?vous ne pouvez pas sortir de forEach(), essayez d'utiliser
every
au lieu de cela stackoverflow.com/questions/6260756/...tout d'abord, il se plaint que tous les chemin retourne une valeur. deuxièmement, il continue sur la boucle, même lorsqu'il atteint la ligne de retour!
l' .forEach() la fonction est censés continuer la boucle, il ignore la valeur de retour de ta fonction. Si vous utilisez .tous les() à la place, vous pouvez sortir début mais n'est qu'en retournant false - c'est-à-dire que vous ne pouvez pas retourner directement une valeur pour le code en dehors de la boucle, vous devez affecter la valeur d'une variable déclarée à l'extérieur. Si vraiment ce que vous voulez faire est de retour, la valeur de la
discoverDependentFields()
fonction de la façon la plus simple est tout simplement d'utiliser un traditionnel for
boucle.OriginalL'auteur Maryam | 2016-02-17
Vous devez vous connecter pour publier un commentaire.
Utiliser une bonne vieille à la vanille pour la boucle:
Bien, si vous voulez rester la fantaisie, l'utilisation
filter
de nouveau:OriginalL'auteur lxe
Utilisation
return
déclaration où vous voulez break-out ci-dessous.Une instruction de retour à l'intérieur d'un .forEach() rappel se comporte comme un
continue
, pas comme unbreak
. Mais en tout cas si vous regardez le code en question, vous verrez que l'OP est déjà en train de l'utiliserreturn
.OriginalL'auteur Ravi Tiwari