Altro
Come controllare se un oggetto è un array?
Sto cercando di scrivere una funzione che accetti una lista di stringhe o una singola stringa. Se è una stringa, allora voglio convertirla in un array con un solo elemento. Poi posso fare un loop su di esso senza paura di un errore.
Quindi come faccio a controllare se la variabile è un array?
Ho arrotondato le varie soluzioni qui sotto e ho creato un jsperf test.
2570
3
Il metodo dato nello standard ECMAScript per trovare la classe di Object è di usare il metodo
toString
daObject.prototype
.Oppure si può usare
typeof
per testare se è una stringa:Oppure, se non siete preoccupati per le prestazioni, potreste semplicemente fare un
concat
in un nuovo Array vuoto.C'è anche il costruttore che si può interrogare direttamente:
Date un'occhiata ad un trattamento approfondito dal blog di @T.J. Crowder's, come postato nel suo commento qui sotto.
Controlla questo benchmark per avere un'idea di quale metodo si comporta meglio: http://jsben.ch/#/QgYAV
Da @Bharath convertire la stringa in array usando Es6 per la domanda posta:
supporre:
Per prima cosa controllerei se la tua implementazione supporta
isArray
:Potresti anche provare a usare l'operatore
instanceof
.Se gli unici due tipi di valori che potrebbero essere passati a questa funzione sono una stringa o un array di stringhe, mantenetela semplice e usate un controllo
typeof
per la possibilità di stringa: