2017-10-19 21 views
0

Y a-t-il une raison pour laquelle je peux canoter des objets .push() dans un tableau? Exemple simplifié ci-dessous.Array.push() avec des objets

let myArray = [{x:1},{x:2}]; 

let myObj = {x:1}; 

let x = myArray.push(myObj); 

console.log(x) 

// I'am attend [{x: 1}, {x: 2}, {x: 1}] mais je reçois 3

+4

Tableau # poussée renvoie la nouvelle longueur du tableau, que vous attribuez à 'x'. Essayez 'console.log (myArray)' –

+1

vous devez 'console.log (myArray)' pour obtenir ce que vous attendez. – cometguy

Répondre

1

Simple, appuyez simplement retourne la longueur de la nouvelle tableau et le tableau a été modifié en place. Essayez:

console.log(myArray)

3

La valeur de retour de push est la longueur du tableau modifié. Ce n'est pas une autre référence au même tableau, ni un nouveau tableau.

Si vous souhaitez enregistrer le tableau, alors console.log(myArray) au lieu de x.

0

Vous devriez console.log (myArray); La façon dont vous renvoie la nouvelle longueur du tableau, que vous attribuez une autre référence

DEMO

let myArray = [{x:1},{x:2}]; 
 
let myObj = {x:1}; 
 
console.log(myArray); 
 
myArray.push(myObj); 
 

 
console.log(myArray);

1

myArray.push (myObj) renvoie un nombre d'objets dont il dispose. vous affichez la longueur du tableau. Si nous imprimons myArray, vous pouvez voir le tableau de Object.

enter image description here