Comment ajouter un objet dans un autre objet en JavaScript?

Je voudrais avoir des objets JavaScript à l’intérieur d’un autre objet JavaScript comme ceci :

Persons:
   {name: 'Jean', age: 25, id: 10001}
   {name: 'Bob',  age: 30, id: 10002}
   {name: 'Alex', age: 18, id: 10003}

Je veux donc que « Persons » contienne chacun de ces objets JavaScript, de sorte que je puisse simplement dire Persons[0].name, ou Persons[2].age, etc.

Essayez le code suivant, ça fonctionne bien:

var Persons = []; 

Persons.push({ name: 'Jean', age: 25, id: 10001 });
Persons.push({ name: 'Bob', age: 30, id: 10002 });
Persons.push({ name: 'Alex', age: 18, id: 10003 });

for (var i = 0; i < tab.length; i++ ){
      console.log(Persons[i]);
}

Sortie:

{name: "Jean", age: 25, id: 10001}
{name: "Bob", age: 30, id: 10002}
{name: "Alex", age: 18, id: 10003}

Comme mon objet origine est un objet JavaScript natif (utilisé comme une liste d’objets), le push ne fonctionnait pas dans mon scénario, mais j’ai résolu le problème en ajoutant une nouvelle clé comme suit :

oldObj['newKey'] = newObj;

Vous pouvez supprimer le même objet que vous avez inséré plus tôt, comme suit :

delete oldObj['newKey'][name];

Oui, c’est possible, il suffit de copier l’exemple suivant:

var Persons = [
      { name: 'Jean', age: 25, id: 10001 },
      { name: 'Bob', age: 30, id: 10002 },
      { name: 'Alex', age: 18, id: 10003 }
];

Si vous voulez ajouter un autre objet, vous pouvez faire ceci:

Persons[Persons.length] = { name: 'Thomas', age: 32, id: 10004 };

Si vous utilisez la bibliothéque jQuery, vous pouvez fusionner l’objet 2 dans l’objet 1, de manière récursive.

$.extend( true, obj1, obj2 );