È non necessariamente sbagliato se il codice fa ciò che deve fare, tuttavia, decisioni come questa possono essere una questione di gusto o opinione in una scrittura personale codice. Viceversa, evitare questa particolare disposizione della logica può essere un requisito di un datore di lavoro.
Ecco le cose da considerare.
- Hai capito cosa sta facendo il codice?
- Qualcun altro si aspetta che legga il codice e capisca cosa sta facendo, e sarà relativamente facile per loro leggere e capire che cosa sta facendo il codice?
- Il codice verrà utilizzato come parte del codice di sviluppo di un progetto per un gruppo o un'organizzazione che implementa lo Stile di programmazione linee guida?
Modifica
Per essere più specifici, ecco alcuni pro e contro usando il codice nel tuo esempio.
Pro
- In casi d'uso specifici, come un array che è garantito per contenere oggetti o altri valori "veri", questo modo è conciso, raddoppiando come un'istruzione condizionale e un'istruzione di assegnazione.
Contro
- Se la matrice contiene
undefined
, null
, 0
, false
, NaN
, ""
o ha "buchi", in questo modo avrà esito negativo.
"Fori" indica quando la matrice ha una lunghezza maggiore di 0 e ad alcuni (o tutti) gli elementi dell'array non è stato assegnato un valore.
"Verità" significa valori che non valutano in falso (vedere i contro). Non dimenticare NaN
o ""
, l'ho quasi fatto.
Il codice nel tuo esempio contiene già un bug. Il primo elemento dell'array sarà perso. Perché? Il primo elemento è zero, che quando usato in un'istruzione di assegnazione restituisce il valore zero, che viene trattato come falso dal ciclo while, vale a dire che il ciclo while si arresta prima di elaborare l'ultimo elemento sullo "stack", o piuttosto il primo elemento nell'array.