Impossible de lire la propriété ‘push’ d’undefined lors de la combinaison de tableaux

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.

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 = [];