J'ai quelque chose de similaire au code suivant:
_.each data, (value, type) ->
switch type
when "answered"
icon = "results_answered"
label = definitions.results.metrics.ta
when "leftblank"
icon = "results_lb"
label = definitions.results.metrics.tlb
when "standing"
icon = "results_standing"
label = definitions.results.metrics.cs
when "minimum"
icon = "results_min"
label = definitions.results.metrics.lowest
else
continue
metricLine = utilities.div("metricline")
metricLine.grab utilities.Sprite(icon, "metric_icon")
metricLine.grab utilities.div("metriclabel", label + ":")
metricLine.grab utilities.div("metricvalue", value)
metricContainer.grab(metricLine)
metricContainer
Mais cela renvoie l'erreur suivante à mon navigateur:
SyntaxError non capturée: instruction continue illégale
Est-il possible d'inclure un continue
comme j'essaye sans lancer l'erreur?
Si vous voulez continuer avec l'itération de boucle suivante, vous voulez return
, pas continue
, car ce que vous passez à each
est une fonction.
Dans un commentaire, vous avez mentionné être familier avec la boucle C # foreach
, donc vouloir utiliser continue
. La différence est que, avec le foreach
de C #, vous avez affaire à une construction de boucle réelle, tandis que each
appelle en fait une fonction pour chaque itération de boucle, donc ce n'est pas (au niveau du langage) un boucle, donc vous ne pouvez pas continue
it.
vous n'utilisez pas une construction de boucle dans votre code mais une fermeture. vous ne pouvez quitter une boucle qu'en continuant. Lorsque vous utilisez des traits de soulignement pour chaque fonction, vous devez quitter la fermeture/fonction par retour
#language construct
for item in items
if some_condition
continue
#closure construct
_.each data, (item) ->
if some_condition
return