Return boolean valeur par le biais de multiples fonctions
J'ai un peu de code Javascript qui doit mettre fin avec une valeur true ou false est retourné. Toutefois, lorsque la valeur vrai/faux est calculée, la valeur d'origine a passé à travers de multiples fonctions, comme:
var txt = 'foo'
function one(txt) {
if(txt == 'foo') { two(txt); }
}
function two(txt) {
if(txt == 'foo') { three(txt); }
}
function three(txt) {
if(txt == 'foo') { return true; }
else { return false; }
}
Évidemment, cet exemple a peu de point, mais il obtient le grand point à travers. Ce que je dois faire c'est de retourner le true
(ou false
) la valeur de la fonction three()
tout le chemin du retour à la fonction one()
, et puis avoir une fonction one()
retour de la valeur à ce appelé ce. Je suppose que je dois retourner par la fonction two()
pour revenir à l'un, est-il une manière que je peux le faire avec une variable? Juste une idée. Merci beaucoup pour toute aide!
return two(txt);
et return three(txt);
ne fonctionne pas?OriginalL'auteur Ben Kulbertis | 2010-07-12
Vous devez vous connecter pour publier un commentaire.
Vous pouvez essayer le suivant (si j'ai bien compris votre question):
|| false
?Vous pouvez contraindre à booléen -
return two( new Boolean(txt) );
oureturn two( !!txt );
- sans avoir besoin de l'|| false
.J'ai enlevé le
|| false
partie. Il n'est pas nécessaire si toutes les fonctions renvoient true ou false.OriginalL'auteur Daniel Vassallo
Modifier les appels à trois() et deux() pour retourner trois() et le retour de deux().
foo
à laone()
fonction.OriginalL'auteur dhorn
Si vous aimez les opérateurs ternaires:
OriginalL'auteur tzaman
Vous pouvez le faire comme les gens ont dit ci-dessus, ou vous pouvez déclarer une variable en dehors de la fonctions de sorte qu'il est global et juste faire référence à elle. Il n'est pas considéré comme un très bon exercice, mais il faudra travailler.
OriginalL'auteur Matt Evanoff
Essayer:
one
ettwo
également besoinelse
cas, ou ils ne reviendront pas lorsque la condition est fausse.OriginalL'auteur Josh K
Je pense que c'est mieux parce qu'il traite les booléens comme n'importe quel autre type. C'est aussi la plus simple, ne nécessitant pas de si ou d'une autre. Le booléen est créé avec le test en fonction de 3, et passé en haut de la pile.
est correcte. Ceci est un exemple de composition de fonctions.
one
txt
=== (two
dethree
)txt
. C'est préférable à la booléen début de la sortie des exemples parce que vous pouvez éviter d'utiliser un conditionnel pour retourner un booléen (c'est redondant, car une condition booléenne true ou false, et il devient facile de retourner une contradiction, ce qui est source de confusion), et permet également la création de l'ensemble des conditions par la composition de plus de fonctions ensemble.OriginalL'auteur BarryBurns