Précédent   Forum du club des développeurs et IT Pro > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 12/01/2013, 01h22   #1
condor_
Invité régulier
 
Homme
Inscription : avril 2012
Messages : 38
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : avril 2012
Messages : 38
Points : 9
Points : 9
Par défaut JSON ajouter objet de facon dynamique

Bonjour,

J'ai le code suivant
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<SCRIPT language="Javascript">
	var test = new Array(1);
	test[0] = "toto";
	test[1] = "tata";
 
	var test2 = new Array(1);
	test2[0] = "test1";
	test2[1] = "test2";
 
 
	test2[0] = new Array(1);
	for (var i = 0; i < test.length; i++)
	{
		test2[0][0] = { name: test2[0], items: [ test[0], test[1] ]};
 
	}
	console.log(test2);
</SCRIPT>
j'aimerais le rendre plus dynamique donc remplacé la ligne :

Code :
test2[0][0] = { name: test2[0], items: [ test[0], test[1] ]};
PAR :

Code :
test2[0][0] = { name: test2[0], items: [ test[i] ]};
cela affiche toujours le dernier element de mon tableau sans prendre en compte les autres ... normal ....

Y a t-il un moyen de faire ceci ?

Merci
condor_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2013, 08h43   #2
NoSmoking
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 5 264
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 5 264
Points : 9 132
Points : 9 132
Bonjour,
tout d'abord
Code html :
<SCRIPT language="Javascript">
et a modifier par
Code html :
<script type="text/javascript">
ou tout simplement <script>en HTML5

ensuite
Code :
test2[0][0] = { name: test2[0], items: [ test[0], test[1] ]};
un élément d'un tableau faisant référence à son adresse parent ????
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2013, 10h14   #3
Bovino
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 18 565
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 42
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 18 565
Points : 66 564
Points : 66 564
Code :
1
2
3
var test = new Array(1);
test[0] = "toto";
test[1] = "tata";


Tu déclares un tableau avec un élément mais tu en définis deux... Ca manque de logique (ou de compréhension de ce que tu fais).
Toujours est-il qu'il est préférable de déclarer un tableau de façon littérale :
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2013, 16h24   #4
condor_
Invité régulier
 
Homme
Inscription : avril 2012
Messages : 38
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : avril 2012
Messages : 38
Points : 9
Points : 9
Code :
1
2
 
test2[0][0] = { name: test2[0], items: [ test[0], test[1] ]};
J'aimerais ne pas preciser a chaque fois test[0], test[1]

car mon nombre d'arguments peux varier ... ca peut etre
Code :
1
2
 
items: test[0], test[1], test[2]
Comme

Il y a une solution ? comme en C avec (...) pour preciser qu'on attend un nombre d'argument variable ?
condor_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2013, 16h33   #5
dkmix
Membre éprouvé
 
Avatar de dkmix
 
Inscription : septembre 2007
Messages : 388
Détails du profil
Informations personnelles :
Localisation : Jamaïque

Informations forums :
Inscription : septembre 2007
Messages : 388
Points : 490
Points : 490
Bonjour,

Quelquechose comme ceci ?
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
var test = [];
test[0] = "toto";
test[1] = "tata";
 
var test2 =[];
test2[0] = "test1";
test2[1] = "test2";
 
test2[0] = [];
 
test2[0][0] = { name: test2[0], items : [] };
 
for (var i = 0; i < test.length; i++)
{
    test2[0][0].items.push(test[i]);
 
}
console.log(test2);
dkmix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2013, 18h47   #6
condor_
Invité régulier
 
Homme
Inscription : avril 2012
Messages : 38
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : avril 2012
Messages : 38
Points : 9
Points : 9
Est ce que ca fonctionne de votre coté ce code ?
condor_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2013, 19h52   #7
dkmix
Membre éprouvé
 
Avatar de dkmix
 
Inscription : septembre 2007
Messages : 388
Détails du profil
Informations personnelles :
Localisation : Jamaïque

Informations forums :
Inscription : septembre 2007
Messages : 388
Points : 490
Points : 490
Citation:
Est ce que ca fonctionne de votre coté ce code ?
Bien sur
dkmix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2013, 21h13   #8
condor_
Invité régulier
 
Homme
Inscription : avril 2012
Messages : 38
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : avril 2012
Messages : 38
Points : 9
Points : 9
effectivement Merci
condor_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 21h44.


 
 
 
 
Partenaires

Hébergement Web