2010-11-01 8 views
32

J'ai un objet Javascript qui ressemble à ceci.Dynamiquement Ajouter à l'objet Javascript

ips[ipID] = {}

donc je me retrouve avec un tas de ips qui ont besoin de stocker des informations qui ressemblera

ipID { name : 'val', anotherName : 'anotherVal' }

Ma question est, comment puis-je ajouter dynamiquement ces noms et valeurs?

+2

Je pense que vous pourriez être source de confusion JSON avec Javascript. – mikerobi

+0

JSON est javascript. Je me demande simplement comment ajouter dynamiquement des valeurs à mon objet. – Mike

+6

JSON n'est pas Javascript, JSON est un format de données. L'exemple ci-dessus déclencherait une erreur dans n'importe quel analyseur JSON conforme aux normes. – mikerobi

Répondre

27
var ipID = {}; 
ipID.name = 'val'; 
ipID.anotherName = 'anotherVal'; 
+1

Ok ça marche. Je suppose que j'aurais dû mentionner que mes noms et valeurs sont tous deux dynamiques. Donc j'utilise tmp [nom] = valeur; et puis j'ai besoin d'ajouter tmp. – Mike

5

Si vous souhaitez utiliser la grande bibliothèque underscore (un couteau suisse pour les développeurs js), vous pouvez utiliser la méthode extend http://documentcloud.github.com/underscore/#extend.

Ainsi, par exemple

var tmp = { name: "asdf", val: "value" }; 
_(ips[ipID]).extend(tmp); 

Espérons que cela est clair, il serait plus facile d'aider si vous aviez une question plus précise.

48

Je crois que c'est la meilleure chose à faire si vos noms sont dynamiques:

var myobj = {}; 
var newFieldName = 'my new field name'; 
var newFieldValue = 'my new field value'; 
myobj[newFieldName] = newFieldValue; 
0

Solution Pour JSON Objet:

Par défaut:

array=[]; 
object={}; 

code JSON:

var People= {}; 

Json.People[key]="value"; 

JSON Résultat:

{People: 
     { 
     key: "value" 
     } 
} 
Questions connexes