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
}
Conceptuellement, les tableaux en JavaScript contiennent array.length
éléments, en commençant par array[0]
jusqu'à array[array.length - 1]
. Un élément de tableau avec l'index i
est défini comme faisant partie du tableau si i
est compris entre 0
et array.length - 1
inclus. Si i n'est pas dans cette plage, il n'est pas dans le tableau.
Donc, conceptuellement, les tableaux sont linéaires, commençant par zéro et allant jusqu'à un maximum, sans mécanisme pour avoir des "lacunes" à l'intérieur de cette plage où aucune entrée n'existe. Pour savoir si une valeur existe à une position donnée (où l'index est 0 ou un entier positif), il suffit littéralement d'utiliser
if (i >= 0 && i < array.length) {
// c'est dans le tableau
}
Maintenant, en réalité, les moteurs JavaScript n'alloueront presque certainement pas d'espace de tableau de manière linéaire et contiguë comme cela, car cela n'aurait pas beaucoup de sens dans un langage dynamique et ce serait inefficace pour certains codes. Ils sont probablement des tables de hachage ou un mélange hybride de stratégies, et les plages non définies du tableau n'ont probablement pas alloué leur propre mémoire. Néanmoins, le langage JavaScript veut présenter les tableaux de array.length
n comme ayant n membres et ils sont nommés 0 à n - 1, et tout ce qui est dans cette plage fait partie du tableau.
ce que vous voulez probablement, cependant, c'est savoir si une valeur dans un tableau est effectivement définie - c'est-à-dire, ce n'est pas undefined
. Peut-être même que vous voulez savoir si elle est définie et pas null
. Il est possible d'ajouter des membres à un tableau sans jamais définir leur valeur : par exemple, si vous ajoutez des valeurs de tableau en augmentant la propriété array.length
, toutes les nouvelles valeurs seront undefined
.
Pour déterminer si une valeur donnée est quelque chose de signifiant, ou a été définie. C'est-à-dire, pas undefined
, ou null
:
if (typeof array[index] !== 'undefined') {
ou
if (typeof array[index] !== 'undefined' && array[index] !== null) {
De manière intéressante, en raison des règles de comparaison de JavaScript, mon dernier exemple peut être optimisé comme ceci :
if (array[index] != null) {
// Les opérateurs == et != considèrent null comme égal seulement à null ou undefined
}
Il est très probable que la personne qui a posé la question sait quel type de tableau elle manipule, mais juste pour être exhaustif : les objets de type tableau contiennent également généralement une propriété length
, auquel cas les deux derniers exemples sont plus appropriés.
Merci Justin.... Je suis en fait assez novice en JS, donc toutes ces informations sont très utiles
L'exemple ci-dessus s'applique également aux objets de type tableau. La définition d'un objet de type tableau est un objet avec la propriété obj.length
, et les propriétés numérotées de 0
à obj.length-1.
La question concernait la façon de tester si un indice particulier d'un tableau existe ou non.
@thomasrutter J'ai du mal à trouver un moyen possible de se retrouver avec un élément de tableau qui est indéfini.
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".