Sto chiedendo in termini di un ciclo, ovviamente break
è importante nelle istruzioni switch
. Se le stesse dichiarazioni di switch
siano odori di codice è un problema separato.
Quindi considera i seguenti casi d'uso per iterare una struttura dati:
- Vuoi fare qualcosa per l'intera struttura (nessuna interruzione necessaria)
- Vuoi fare qualcosa per parte di una struttura dati.
- Vuoi trovare qualcosa nella struttura dati (che può o non può coinvolgere iterando l'intera struttura)
L'elenco precedente sembra più o meno esaustivo per me, forse mi manca qualcosa lì.
Il caso 1 può essere buttato fuori, possiamo usare map
/ forEach
. Il caso 2 suona come filter
o reduce
funzionerebbe. Per il caso 3, la necessità di iterare la struttura dei dati per trovare qualcosa sembra semplicemente sbagliata, o la struttura dei dati stessa dovrebbe fornire un metodo pertinente o probabilmente si utilizza la struttura dei dati sbagliata.
Anche se non tutte le strutture di dati javascript (o implementazione) hanno quei metodi, è banalmente semplice scrivere le funzioni rilevanti per quasi tutte le strutture di dati javascript.
Ho visto questo quando si ricerca ma è esplicitamente nel contesto di C / C ++. Potrei capire come sarebbe più o meno una necessità in C, ma la mia comprensione è che C ++ ha lambda e molte strutture dati sono generalmente oggetti (ad esempio std::vector
, std::map
), quindi non sono sicuro di capisco perché le risposte sono così universalmente a favore di break
, ma non credo di conoscere abbastanza bene il C ++ per iniziare a commentare.
Mi rendo anche conto che per una struttura dati eccessivamente ampia il costo di iterare l'intera struttura può essere inaccettabilmente alto, ma dubito che siano molto comuni quando si lavora anche su node.js. Certamente è il tipo di cosa che vorresti profilare.
Quindi non vedo un caso d'uso per break
nel javascript di oggi. Mi sto perdendo qualcosa qui?