Je voudrais vérifier si une variable est soit un tableau, ou même une seule valeur en JavaScript.
J'ai trouvé une solution...
if (variable.constructor == Array)...
Est-ce la meilleure façon, cela peut être fait?
Je voudrais vérifier si une variable est soit un tableau, ou même une seule valeur en JavaScript.
J'ai trouvé une solution...
if (variable.constructor == Array)...
Est-ce la meilleure façon, cela peut être fait?
Il existe de multiples solutions à tous leurs caprices. Cette page donne un bon aperçu. Une solution possible est:
function isArray(o) {
return Object.prototype.toString.call(o) === '[object Array]';
}
J'ai remarqué que quelqu'un a mentionné jQuery, mais je ne savais pas qu'il était un isArray()
fonction. Il s'avère qu'il a été ajouté dans la version 1.3.
jQuery met en œuvre, comme le suggère Peter:
isArray: function( obj ) {
return toString.call(obj) === "[object Array]";
},
Après avoir mis beaucoup de foi dans jQuery déjà (en particulier leurs techniques pour la compatibilité inter-navigateur) je vais mettre à niveau vers la version 1.3 et l'utilisation de leur fonction (à condition que la mise à niveau ne cause pas trop de problèmes) ou d'utiliser cette méthode proposée directement dans mon code.
Merci beaucoup pour les suggestions.
C'est une vieille question, mais ayant le même problème, j'ai trouvé un très élégant solution que j'ai envie de partager.
L'ajout d'un prototype de Tableau, il est très simple
Array.prototype.isArray = true;
Maintenant si vous avez un objet que vous souhaitez tester pour voir si son un tableau tous vous avez besoin est de vérifier pour la nouvelle propriété
var box = doSomething();
if (box.isArray) {
// do something
}
isArray n'est disponible que si son un tableau
Via Crockford:
function typeOf(value) {
var s = typeof value;
if (s === 'object') {
if (value) {
if (value instanceof Array) {
s = 'array';
}
} else {
s = 'null';
}
}
return s;
}
Le principal défaut de Crockford mentionne, c'est une incapacité à déterminer correctement les tableaux qui ont été créés dans un contexte différent, par exemple, window
.
Cette page est une version bien plus perfectionnée si cela est insuffisant.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.