Est-ce que cela fonctionnera pour tester si une valeur à la position index
existe ou non, ou y a-t-il une meilleure façon de le faire :
if(arrayName[index]==""){
// do stuff
}
Est-ce que cela fonctionnera pour tester si une valeur à la position index
existe ou non, ou y a-t-il une meilleure façon de le faire :
if(arrayName[index]==""){
// do stuff
}
J'ai rencontré ce problème en utilisant les datatables de Laravel. Je stockais une valeur JSON appelée properties
dans un journal d'activité et je voulais afficher un bouton en fonction de la présence ou non de cette valeur.
Eh bien, datatables interprétait cela comme un tableau s'il était vide et comme un objet s'il ne l'était pas, donc la solution suivante a fonctionné pour moi :
render: function (data, type, full) {
if (full.properties.length !== 0) {
// faire quelque chose
}
}
Un objet n'a pas de propriété length.
Je pense que cette décision est appropriée pour les gars qui préfèrent la programmation fonctionnelle déclarative à la programmation orientée objet impérative ou procédurale. Si votre question est "Y a-t-il des valeurs à l'intérieur? (une valeur truthy ou falsy)" vous pouvez utiliser la méthode .some
pour valider les valeurs à l'intérieur.
[].some(el => el || !el);
function isEmpty(arr) { ... }
.[].length
aboutissant à 0
ce qui est dangereux dans certains cas.[].length > 0
en disant "Sa longueur est-elle supérieure à zéro?"Exemples avancés:
[ ].some(el => el || !el); // false
[null].some(el => el || !el); // true
[1, 3].some(el => el || !el); // true
Lorsque vous créez des valeurs de tableau vides, elles NE sont PAS indéfinies, elles sont VIDES
var arr = new Array(10); // (10) [empty × 10]
mais lorsque vous obtenez un élément par index, vous recevez undefined
arr[0]; // undefined
donc vous ne pouvez pas savoir en utilisant === si elles sont indéfinies ou vides
nous pouvons le faire en utilisant JSON.stringify, en convertissant l'ensemble du tableau il remplace les valeurs vides par null
JSON.stringify(arr); // "[null,null,null,null,null,null,null,null,null,null]"
JSON.stringify(arr[0]); // mais pour un seul élément cela renvoie undefined
donc la vraie vérification de la valeur vide :
arr[0] !== null && JSON.stringify(arr.map(item => !item)).slice(1, -1).split(',')[0] === 'null'
false
au lieu des valeurs existantes (assurer que la structure en chaîne à être séparée par des virgules sans virgules redondantes)null
Vous pouvez utiliser la bibliothèque Loadsh pour le faire de manière plus efficace, comme suit :
si vous avez un tableau nommé "pets", par exemple :
var pets = ['chien', undefined, 'chat', null];
console.log(_.isEmpty(pets[1])); // true
console.log(_.isEmpty(pets[3])); // true
console.log(_.isEmpty(pets[4])); // false
_.map( pets, (pet, index) => { console.log(index + ': ' + _.isEmpty(pet) ) });
Pour vérifier toutes les valeurs du tableau pour des valeurs null ou undefined :
var pets = ['chien', undefined, 'chat', null];
console.log(_.isEmpty(pets[1])); // true
console.log(_.isEmpty(pets[3])); // true
console.log(_.isEmpty(pets[4])); // false
_.map( pets, (pet, index) => { console.log(index + ': ' + _.isEmpty(pet) ) });
Consultez plus d'exemples sur http://underscorejs.org/
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.
6 votes
Veuillez noter qu'il ne s'agit pas de vérifier si tout le tableau est vide, mais juste un certain emplacement qui a la valeur d'index"
0 votes
Le titre peut être amélioré en disant "Comment puis-je vérifier en JavaScript si une valeur existe à un certain index du tableau".