Viac na
Ako skontrolovať, či je objekt poľom?
Snažím sa napísať funkciu, ktorá prijíma buď zoznam reťazcov, alebo jeden reťazec. Ak je to reťazec, potom ho chcem previesť na pole s jedinou položkou. Potom nad ním môžem prechádzať v cykle bez obáv z chyby.
Ako teda skontrolujem, či je premenná pole?
Nižšie som zhrnula rôzne riešenia a vytvorila jsperf test.
2570
3
Metóda uvedená v štandarde ECMAScript na zistenie triedy Object je použitie metódy
toString
zObject.prototype
.Alebo môžete použiť
typeof
na testovanie, či ide o String:Alebo, ak vám nezáleží na výkone, môžete jednoducho vykonať
concat
na nové prázdne pole.Existuje'aj konštruktor, ktorého sa môžete opýtať priamo:
Pozrite si dôkladné spracovanie z blogu @T.J. Crowder's, ako je uvedené v jeho komentári nižšie.
Pozrite si tento benchmark, aby ste získali predstavu, ktorá metóda je výkonnejšia: http://jsben.ch/#/QgYAV
Od @Bharath previesť reťazec na pole pomocou Es6 pre položenú otázku:
predpokladám:
Najprv by som skontroloval, či vaša implementácia podporuje
isArray
:Mohli by ste tiež skúsiť použiť operátor
instanceof
Ak jediné dva druhy hodnôt, ktoré môžu byť odovzdané tejto funkcii, sú reťazec alebo pole reťazcov, zachovajte jednoduchosť a použite kontrolu
typeof
pre možnosť reťazca: