Détails
Comment vérifier si un objet est un tableau ?
J'essaie d'écrire une fonction qui accepte soit une liste de chaînes de caractères, soit une seule chaîne. S'il s'agit d'une chaîne, je veux la convertir en un tableau contenant un seul élément. Ainsi, je peux boucler dessus sans craindre une erreur.
Comment vérifier si la variable est un tableau ?
J'ai rassemblé les différentes solutions ci-dessous et créé un [jsperf test] (http://jsperf.com/js-isarray-comparison).
2570
3
La méthode donnée dans la norme ECMAScript pour trouver la classe d'un objet est d'utiliser la méthode
toString
deObject.prototype
.Vous pouvez aussi utiliser
typeof
pour tester s'il s'agit d'une chaîne :Si vous ne vous souciez pas des performances, vous pouvez simplement faire un
concat
vers un nouveau tableau vide.Il y a aussi le constructeur que vous pouvez interroger directement :
Consultez le [traitement approfondi][1] du blog de [@T.J. Crowder][2], tel que publié dans son commentaire ci-dessous.
Consultez ce [benchmark][3] pour vous faire une idée de la méthode la plus performante : http://jsben.ch/#/QgYAV
De [@Bharath][4] convertir une chaîne de caractères en tableau en utilisant Es6 pour la question posée :
supposez :
[1] : http://blog.niftysnippets.org/2010/09/say-what.html [2] : https://stackoverflow.com/users/157247/t-j-crowder [3] : http://jsben.ch/#/QgYAV [4] : https://stackoverflow.com/users/8432239/bharath?tab=profile
Je vérifierais d'abord si votre implémentation supporte
isArray
:Vous pouvez aussi essayer d'utiliser l'opérateur
instanceof
.Si les deux seuls types de valeurs qui peuvent être passés à cette fonction sont une chaîne ou un tableau de chaînes, restez simple et utilisez un contrôle
typeof
pour la possibilité de chaîne :