Comment puis-je vérifier si un tableau spécifique existe, et sinon, il sera créé?javascript: vérifier si le tableau existe, sinon le créer
Répondre
Si vous voulez vérifier si un tableau x existe et créer si elle ne le fait pas, vous pouvez faire
x = (typeof x != 'undefined' && x instanceof Array) ? x : []
Vous pouvez utiliser le typeof
operator pour tester non défini et le instanceof
operator pour tester si elle est une instance de Tableau:
if (typeof arr == "undefined" || !(arr instanceof Array)) {
var arr = [];
}
Si vous parlez d'un environnement de navigateur toutes les variables globales sont membres de l'objet fenêtre. Donc, pour vérifier:
if (window.somearray !== undefined) {
somearray = [];
}
Désolé, mauvaise réponse. Voir la réponse de Gumbo pour un meilleur code. – slebetman
var arr = arr || [];
Mais cela ne vérifie pas si * arr * est un tableau. – Gumbo
Vous avez raison. Il n'était pas clair à partir de la question s'il est nécessaire de vérifier qu'il s'agissait d'un tableau à l'avance, ou simplement de vérifier si la variable est déjà définie. C'est un idiome commun, et est plus court et plus simple que les autres affichés, donc j'ai pensé que je l'afficherais et laisserais le questionneur décider si c'est suffisant. –
Si 'arr' est déjà défini dans la portée correspondante, alors pourquoi s'embêter avec' var ... '? Vous pouvez juste faire 'arr = arr || []; ' – James
Si vous voulez vérifier si la objet est déjà un tableau, pour éviter le well known issues de l'opérateur instanceof
lorsque vous travaillez dans des environnements DOM multi-encadrées, vous pouvez utiliser la méthode Object.prototype.toString
:
arr = Object.prototype.toString.call(arr) == "[object Array]" ? arr : [];
let list = Array.isArray(x) ? x : [];
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray
Ou si var x pourrait être un tableau et que vous voulez vous assurer qu'il est l'un:
let list = [].concat(x);
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/concat
Jetez 'x n'est pas défini' dans les deux cas –
'x' est la variable qui pourrait être un tableau ou non. Vous définissez cela. Ceci est juste un exemple de code ... – mynameistechno
- 1. vérifier si le fichier existe, sinon, créer
- 2. vérifier si plist existe, sinon charger
- 3. vérifier si le fichier existe en javascript?
- 4. Obtenir si entrée de Registre existe si le faire, sinon
- 5. Vérifiez si l'adresse e-mail existe déjà si le message s'affiche, sinon ajoutez au tableau
- 6. comment vérifier si un élément existe déjà dans le tableau
- 7. comment vérifier si un fichier existe avant de le créer
- 8. Ajouter au fichier si existe et créer sinon
- 9. Comment vérifier si le fichier existe avec le script VB
- 10. Comment puis-je vérifier si le fichier existe, et sinon tuer la construction?
- 11. WebDav comment vérifier si le dossier existe?
- 12. Vérifiez si Variable dans le tableau javascript
- 13. si le tableau existe, puis continuer
- 14. comment vérifier si la connexion existe dans le serveur sql?
- 15. Cocoa: SBJSON vérifier si le champ existe
- 16. vérifier si le nom d'utilisateur existe
- 17. php vérifier si le fichier existe
- 18. php - fonction à définir var si la clé existe dans le tableau, sinon définie par défaut
- 19. Existe-t-il un meilleur moyen de vérifier le répertoire virtuel et si non, le créer?
- 20. Comment vérifier si une classe javascript existe
- 21. Script shell pour tester si un répertoire existe et sinon le créer?
- 22. vérifier si le tableau contient false?
- 23. Vérifier si la table existe
- 24. Existe-t-il un moyen javascript de vérifier si un navigateur supporte nativement le format MP3?
- 25. Comment puis-je vérifier qu'une clé de tableau existe si le tableau n'existe pas en PHP?
- 26. Vérifier si l'attribut existe
- 27. Vérifier les éléments répétés tableau PHP (sinon vide)
- 28. vérifier si Tag existe avant de l'ajouter à un tableau
- 29. PHP - vérifier si un ou plusieurs champ tableau existe
- 30. Comment vérifier si une valeur de tableau existe?
Cela fonctionne dans la plupart des cas, mais il ne vous couvrira pas si vous envisagez de vérifier un tableau instancié à partir d'un constructeur 'Array' global différent - cela peut se produire lors de l'écriture de scripts. – James
C'est vrai. Comment pourrait-on gérer cette affaire? – Rich
@Rich: Voir ma réponse ici: http://stackoverflow.com/questions/1961528/javascript-check-if-array-exist-if-not-create-it/1961653#1961653, il se comportera correctement sur plusieurs environnements DOM encadrés. – CMS