J'utilise comme pour vérifier si le tableau n'est pas vide
if(array != null){
//code
}
J'ai aussi trouvé comme ça
if(Array.isArray(array)){
//code
}
et
if(array.length){
//code
}
Lequel est préférable d'utiliser au-dessus de trois?
Je suggère d'utiliser Array.isArray
et le length
propriété du tableau
if (Array.isArray(array) && array.length) {
// code
}
car il vérifie si array
est un tableau et si la longueur a une valeur de vérité.
En comparant vos tentatives:
Vérification de vérité
if (array != null) { // which is basically the same as if (array) {
//code
}
Ceci est true
pour toutes les valeurs de vérité, comme 1
, 'a'
, {}
. Ce résultat n'est pas recherché.
Vérification de tableau
if (Array.isArray(array)) {
// code
}
Ceci vérifie uniquement si array
est un tableau, mais pas sa longueur. Les tableaux vides retournent true
, ce qui n'est pas souhaité.
Vérification de la longueur
if (array.length) {
// code
}
Cela ne fonctionne que pour les objets qui peuvent avoir une propriété de longueur, qui ont une valeur de vérité.
Bien que cela se rapproche du résultat souhaité, cela peut être faux, par exemple avec des objets comme
{ length: 'foo' }
ou avec objets de type tableau .
Si vous voulez savoir si un objet est un tableau, alors Array.isArray()
fera l'affaire.
Si vous voulez savoir si un tableau contient des éléments, alors array.length !== 0
fera l'affaire.
Si vous voulez savoir si une variable n'est pas nulle, ce que array !== null
fera.
Il est préférable de vérifier la longueur du tableau, mais il y a un problème. Considérez si quelqu'un a entré une valeur non définie dans le tableau, celui-ci sera vide mais sa longueur sera toujours supérieure à 0.
for(var i=0,i<array.length;i++){
if(typeof(array[i]) !== 'undefined'){
};
};
Je suis habitué à array.length
Pour vérifier si le tableau n'est pas vide, utilisez if( array.length > 0) {}
var isEmptyArray = function(arr) {
return (arr || []).length === 0;
}
var arr1 = [1, 2, 3];
var arr2 = [];
var arr3 = undefined;
console.log(isEmptyArray(arr1)); // false
console.log(isEmptyArray(arr2)); // true
console.log(isEmptyArray(arr3)); // true
la meilleure solution est
if (array.length>0){
....
}
mais cette phrase a un problème si vous envisagez de supprimer des index du tableau, car vous pouvez avoir un tableau comme ceci [indéfini, indéfini, indéfini], dont la longueur est 3 mais techniquement vide.
var a = [1,2,3];
delete a[0];
delete a[1];
delete a[2];
a.length > 0 /// true
a /// [undefined x 3]
Prenez cela en considération pour faire la phrase exacte