Lorsque vous poussez le contenu d’un tableau vers un autre tableau, je reçois
“UnError TypeEraught: impossible de lire l’erreur” push ‘of undefined “de la propriété dans cet extrait.
- Twitter Bootstrap Bouton Texte Wrap Word
- Sécuriser l'API REST sans réinventer la roue
- Fichiers app.config / web.config spécifiques aux développeurs dans Visual Studio
- Docker: comment ancrer et déployer plusieurs instances d'une application LAMP
- Quelle est la différence entre les sites activés et les sites disponibles?
var order = new Object(), stack = []; for(var i=0;i 0){ order[1].push(a[i]); } if(parseInt(a[i].daysleft) < 0){ order[2].push(a[i]); } }
Pourquoi est-ce que je reçois cette erreur dans la deuxième instruction if ? Merci beaucoup!
Vous obtenez l’erreur car l’ order[1]
n’est undefined
.
Ce message d’erreur signifie que quelque part dans votre code, une tentative est faite pour accéder à une propriété avec un certain nom (ici c’est “push”), mais au lieu d’un object, la base de la référence est en fait undefined
. Ainsi, pour trouver le problème, vous devez rechercher le code qui fait référence à ce nom de propriété (“push”) et voir ce qui se trouve à sa gauche. Dans ce cas, le code est
if(parseInt(a[i].daysleft) > 0){ order[1].push(a[i]); }
ce qui signifie que le code s’attend à ce que l’ order[1]
soit un tableau. Ce n’est cependant pas un tableau; c’est undefined
, donc vous obtenez l’erreur. Pourquoi est-il undefined
? Eh bien, votre code ne fait rien pour le rendre autre chose, basé sur ce que contient votre question.
Maintenant, si vous voulez juste placer a[i]
dans une propriété particulière de l’object, il n’y a pas besoin d’appeler .push()
du tout:
var order = [], stack = []; for(var i=0;i 0){ order[1] = a[i]; } if(parseInt(a[i].daysleft) < 0){ order[2] = a[i]; } }
order
est un Object
, pas un Array()
.
push()
est pour les tableaux.
Reportez-vous à cet article
Essayez ceci (mais vos sous-objects doivent être Arrays()
):
var order = new Array(); // initialize order; n = index order[n] = new Array(); // and then you can perform push() order[n].push(some_value);
Ou vous pouvez simplement utiliser l’ordre comme un tableau d’objects non-tableau:
var order = new Array(); order.push(a[n]);
répondre à votre question est simple ordre n’est pas un object en faire un tableau. var order = new Array (); order.push (/ item à pousser /); Lorsque cette erreur apparaît, il suffit de cocher la gauche de la propriété de l’erreur dans ce cas, c’est push qui est order [], donc elle n’est pas définie.
ordre [] est indéfini c’est pourquoi
Il suffit de définir l’ordre [1] … [n] à = une valeur
cela devrait le réparer
Vous n’avez pas besoin de donner un index.
Au lieu de faire l’ order[0].push(a[i])
, faites simplement order.push(a[i])
.
Cette erreur se produit en angle lorsque vous n’avez pas initialisé le tableau vierge.
À titre d’exemple:
userlist: any [];
this.userlist = [];
ou
userlist: any = [];