11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous, je souhaite ajouter des données au format json via un push,
Mon code me semble correct mais ne fonctionne pas.

var temp=[];
temp.push({var1:'tutu',var2:'tete',var3:'toto',var4:'titi'});
	console.log("->->->"+temp.length);
for(var i in temp){
	console.log("->"+i+"->->"+temp.i);
}

Le premier console me retourne 1 au lieu de 4
le second console ne retourne qu'une ligne i = 0 et temp.i = undefined

Une idée?
merci =)
Bonsoir,

Push c'est pour un tableau, pas pour du json.
Pour le vérifier il aurait suffit de faire console.log("->->->"+temp); au lieu de console.log("->->->"+temp.length);

Il y a $.extend() de jQuery qui permet de faire cela, mais je ne sais pas s'il correspond à ton besoin.
var temp=[];
temp.push({var1:'tutu',var2:'tete',var3:'toto',var4:'titi'});
console.log(temp);
for(var index in temp[0]){
    console.log(temp[0][/index]);
} 


Supprime le /
Modifié par benj (23 Dec 2014 - 22:19)
J'avais déjà cette solution via des arrays, mais je souhaite traiter les données comme des objets
comme ceci :

var  temp = {};
temp.var1 = 'toto';
console.dir(temp.var1):
ou
console.dir(temp[0]);

Le soucis c'est qu'in ne peut ajouter qu'une donnée à la fois, et non une série via {}
Modérateur
Bonjour,

Faire un for ... in sur les propriétés d'un objet est hautement risqué et selon moi à éviter. Les objets n'ont pas toujours que les propriétés qu'on pense leur avoir donné. Ils peuvent en avoir d'autres ajoutées selon les circonstances.

EDIT: en cas d'utilisation d'un CMS par exemple.

Amicalement,
Modifié par parsimonhi (24 Dec 2014 - 09:54)