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 20/12/2012, 22h03   #1
pierrot10
Débutant
 
Inscription : mai 2005
Messages : 2 080
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 2 080
Points : 643
Points : 643
Par défaut Erreur dans un array

Bonjour à tous,
j'essaye de construire un array multidimensionnel.
C'est pas très compliqué
Code javascript :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
MarkerDetails = { 
	details : function(){
		var detail = new Array(3);
		detail[0][0] = 'me';
		detail[0][1] = 'img/iconGoogleMap/';
		detail[0][2] = 'phone.png';
		detail[1][0] = 'Pets';
		detail[1][1] = 'img/iconGoogleMap/';
		detail[1][2] = 'pet.png';
		detail[2][0] = 'Child';
		detail[2][1] = 'img/iconGoogleMap/';
		detail[2][1] = 'child.png';
		detail[3][0] = 'disability';
		detail[3][1] = 'img/iconGoogleMap/';
		detail[3][2] = 'disability.png';
		detail[4][0] = 'car';
		detail[4][1] = 'img/iconGoogleMap/';
		detail[4][2] = 'car.png';
		detail[5][0] = 'Cycle';
		detail[5][1] = 'img/iconGoogleMap/';
		detail[5][2] = 'cycling.png';
		return detail;
	}
}

Je n'arrive pas à comprendre pourquoi j'ai toujours le message
"can't convert undefined to objet. Mon array est mal déclaré??

Bonnes fêtes
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2012, 22h10   #2
Bovino
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 18 547
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 547
Points : 66 503
Points : 66 503
Citation:
Mon array est mal déclarée??
Pour le moins

Mais c'est le même problème que pour ta précédente question...
Tant que tu ne définis pas une valeur comme un tableau, celle-ci n'est pas considérée comme un tableau !
Donc detail[0] n'étant pas un tableau déclaré, detail[0][0] n'a pas de sens.

En plus, tu déclares que ton tableau contiendra trois éléments (var detail = new Array(3);) mais au final, il en a cinq... Tu manques de logique
__________________
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 20/12/2012, 22h25   #3
pierrot10
Débutant
 
Inscription : mai 2005
Messages : 2 080
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 2 080
Points : 643
Points : 643
ha d'accord, mais alors je ne comprends comme même pas un truc,
je l'ai bien detail comme ceci
Code :
var detail = new Array(5);
(J'ai changé avec 5, et ca ne change pas).
Ci-dessus, n'ai je pas déclaré detail?

J'ai aussi essayé ceci, mais sans succès
Code :
var detail = new Array(5,3);
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2012, 22h31   #4
pierrot10
Débutant
 
Inscription : mai 2005
Messages : 2 080
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 2 080
Points : 643
Points : 643
Ne serait-il pas ca?
Code :
1
2
3
4
5
6
7
8
9
 
var detail = new Array(6);
 
		for (var i = 0; i < 6; i++) {
			detail[i] = new Array(3);
			for (var j = 0; j < 3; j++) {
				detail[i][j] = '';
			}
		}
en fait j'en ai pas 5 mais 6, n'est-ce pas (de 0 à 5)
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2012, 18h37   #5
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 118
Points : 9 118
Bonjour,
pas forcément une bonne idée que de déclarer les Array de cette façon à preuve l'ambiguïté
Code :
1
2
var tableau = new Array(3);    // init d'un tableau de 3 éléments
var tableau = new Array(5, 3); // init d'un tableau de 2 éléments, 5 et 3
donc si tu veux initialiser un tableau avec 1 élément valant 5 par exemple cela devient
Code :
1
2
var tableau = new Array(1);
tableau[0] = 5;
avec la notation [] cela a au moins le mérite d'être toujours plus limpide
Code :
1
2
var tableau = [5];    // init d'un tableau de 1 élément valant 5
var tableau = [5, 3]; // init d'un tableau de 2 éléments, 5 et 3
Code :
1
2
3
4
5
6
7
8
9
var detail = [];
var i, nb_1 = 6,
    j, nb_2 = 3;
for( i = 0; i < nb_1; i++) {
  detail[i] = [];
  for( j = 0; j < nb_2; j++) {
    detail[i][j] = i;
  }
}
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2012, 22h38   #6
SylvainPV
Membre chevronné
 
Inscription : novembre 2012
Messages : 506
Détails du profil
Informations forums :
Inscription : novembre 2012
Messages : 506
Points : 694
Points : 694
Aussi ne pas oublier qu'on peut mettre des hashmap dans des arrays dans des hashmaps dans des arrays en Javascript Une array c'est bien quand tu dois gérer une liste d'élements sans en savoir le nombre ; pour le reste autant prendre une hashmap. Donc dans ton cas je ferais :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
MarkerDetails = { 
	details : [
		{
			id: "me",
			icon: "img/iconGoogleMap/",
			img: "phone.png"
		},
		{
			id: "Pets",
			icon: "img/iconGoogleMap/",
			img: "pet.png"
		},
		{
			id: "Child",
			icon: "img/iconGoogleMap/",
			img: "child.png"
		},
		{
			id: "Cycle",
			icon: "img/iconGoogleMap/",
			img: "cycling.png"
		}		
	]
};
Sans connaitre le détail de ton application, je trouve ça plus clair en l'état.
SylvainPV est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2012, 23h05   #7
pierrot10
Débutant
 
Inscription : mai 2005
Messages : 2 080
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 2 080
Points : 643
Points : 643
Hello
Merci pour vos réponses et je vous souhaite de bonnes fêtes
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2012, 00h14   #8
pierrot10
Débutant
 
Inscription : mai 2005
Messages : 2 080
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 2 080
Points : 643
Points : 643
Je m'excuse mais j'avoue etre un peu perdu avec les array en javascript.


En fait j'utilise localStorage pour stoker des données sur des module.
Et en javascript ca me semble bien plus compliquer que PHP (du moins pour moi :o))

Ces modules on des id mais qui ne se suivent pas forcement et qui ne commence non plus pas par 0 ou 1.

Deplus, la quantité de modules peuvent changer, si dans le cas on en efface un ou ajoute etc.

Pour un module, il y a les information suivante
id, iconColor, profile, pseudo, phone, mode

j'ai besoin de créé un aray qui va extrait id, iconcolor, profile, pseudo et y ajouter coords

En gros j'aimerais avoir ca
Code javascript :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
var mod = new Array();
mod['47'][profile]='profile47'
mod['47'][pseudo]= 'pseudo47';
mod['47'][iconColor] = 'iconIcon47';
mod['47'][coords] = '46.34,6.00001';
 
mod['48'][profile]='profile48'
mod['48'][pseudo]= 'pseudo48';
mod['48'][iconColor] = 'iconIcon48';
mod['48'][coords] = '46.345,6.00001';
 
mod['50'][profile]='profile50'
mod['50'][pseudo]= 'pseudo50';
mod['50'][iconColor] = 'iconIcon50';
mod['50'][coords] = '46.0034,6.00001';
 
mod['64'][profile]='profile64'
mod['64'][pseudo]= 'pseudo64';
mod['64'][iconColor] = 'iconIcon64';
mod['64'][coords] = '46.34,6.40001';

Pourcela, je sohaite stoker dans un varaible (array) modules, des valeurs extraites d'un fichier JSON dont voici un extrait
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 
{
	"modules" : [
		{
			"id" : "47",
			"pseudo" : "Titi",
			"profile" : "gps",
			"iconColor" : "3",
			"distance" : "1",
			"start" : "2012-09-23 08:00:00",
			"refresh" : "08:20:00",
			"last" : "2012-09-23 08:00:00"
		},
		{
			"id" : "48",
			"pseudo" : "Toto",
			"profile" : "phone",
			"iconColor" : "10",
			"distance" : "0",
			"start" : "2012-09-23 08:00:00",
			"refresh" : "08:20:00",
			"last" : "2012-09-23 08:00:00"
		},
		{
			"id" : "50",
			"pseudo" : "Tete",
			"profile" : "gps",
			"iconColor" : "5",
			"distance" : "5",
			"start" : "2012-08-23 08:00:00",
			"refresh" : "10:20:00",
			"last" : "2012-09-23 08:00:00"
		},
		{
			"id" : "64",
			"pseudo" : "Tete",
			"profile" : "gps",
			"iconColor" : "5",
			"distance" : "5",
			"start" : "2012-08-23 08:00:00",
			"refresh" : "10:20:00",
			"last" : "2012-09-23 08:00:00"
		}
	]
}
Je n'arrive pas, en javascript a construire cet array dynamiquement, sans avoir des problème instencié des array multiple, sachant qu'un module peut etre supprimer par l'utilisateur...

Milles mercis pour vos lumières
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2012, 11h42   #9
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 118
Points : 9 118
Tu peux parcourir avec une boucle for i in objet.
exemple à partir de tes données
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
var oData =  {
	"modules" : [
		{
			"id" : "47",
			"pseudo" : "Titi",
			"profile" : "gps",
			"iconColor" : "3",
			"distance" : "1",
			"start" : "2012-09-23 08:00:00",
			"refresh" : "08:20:00",
			"last" : "2012-09-23 08:00:00"
		},
		{
			"id" : "48",
			"pseudo" : "Toto",
			"profile" : "phone",
			"iconColor" : "10",
			"distance" : "0",
			"start" : "2012-09-23 08:00:00",
			"refresh" : "08:20:00",
			"last" : "2012-09-23 08:00:00"
		},
		{
			"id" : "50",
			"pseudo" : "Tete",
			"profile" : "gps",
			"iconColor" : "5",
			"distance" : "5",
			"start" : "2012-08-23 08:00:00",
			"refresh" : "10:20:00",
			"last" : "2012-09-23 08:00:00"
		},
		{
			"id" : "64",
			"pseudo" : "Tete",
			"profile" : "gps",
			"iconColor" : "5",
			"distance" : "5",
			"start" : "2012-08-23 08:00:00",
			"refresh" : "10:20:00",
			"last" : "2012-09-23 08:00:00"
		}
	]
}
 
var oSrc = oData['modules'];
var i, j, html = '';
for( i in oSrc){
  html +='<ol>'
  for( j in oSrc[i]){
    html += '<li>' + j +' = ' +oSrc[i][j] +'</\li>';
  }
  html +='<\/ol>'
}
document.write( html); // je sais c'est pas bô!!! :O))
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2012, 11h46   #10
pierrot10
Débutant
 
Inscription : mai 2005
Messages : 2 080
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 2 080
Points : 643
Points : 643
Salut noSmoking,
Ben oui, parcourir la table c'est pas trop mon problème.
Ce qui me préoccupe c'est construire la nouvelle table sans avoir de problème d'instanciation.
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2012, 12h33   #11
sekaijin
Expert Confirmé Sénior
 
Avatar de sekaijin
 
Homme
Urbaniste
Inscription : juillet 2004
Messages : 2 162
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 49
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Urbaniste
Secteur : Santé

Informations forums :
Inscription : juillet 2004
Messages : 2 162
Points : 5 148
Points : 5 148
Citation:
Envoyé par pierrot10 Voir le message
Salut noSmoking,
Ben oui, parcourir la table c'est pas trop mon problème.
Ce qui me préoccupe c'est construire la nouvelle table sans avoir de problème d'instanciation.
moi ce que je comprends pas c'est pourquoi tu veux construire une COPIE de ton array il te suffit d'utiliser une référence

lorsque tu mets tes modules dans ton localstorage tu fais un truc du genre

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
window.localStorage.setItem('modules', [
		{
			"id" : "47",
			"pseudo" : "Titi",
			"profile" : "gps",
			"iconColor" : "3",
			"distance" : "1",
			"start" : "2012-09-23 08:00:00",
			"refresh" : "08:20:00",
			"last" : "2012-09-23 08:00:00"
		},
		{
			"id" : "48",
			"pseudo" : "Toto",
			"profile" : "phone",
			"iconColor" : "10",
			"distance" : "0",
			"start" : "2012-09-23 08:00:00",
			"refresh" : "08:20:00",
			"last" : "2012-09-23 08:00:00"
		},
		{
			"id" : "50",
			"pseudo" : "Tete",
			"profile" : "gps",
			"iconColor" : "5",
			"distance" : "5",
			"start" : "2012-08-23 08:00:00",
			"refresh" : "10:20:00",
			"last" : "2012-09-23 08:00:00"
		},
		{
			"id" : "64",
			"pseudo" : "Tete",
			"profile" : "gps",
			"iconColor" : "5",
			"distance" : "5",
			"start" : "2012-08-23 08:00:00",
			"refresh" : "10:20:00",
			"last" : "2012-09-23 08:00:00"
		}
	]);
donc pour le lire à la place de var mod = new Array(); puis l'initialisation du contenu du tableau tu fais simplement
Code :
var mod = window.localStorage.getItem('module');
c'est tout.

tu as donc accès à tes modules de la façon suivantetu peux lire http://debray-jerome.developpez.com/...rage-en-html5/


quant à ta remarque sur php je ne comprends pas.
en php tu fais
Code php :
1
2
3
4
5
6
7
$mod = new Array();
$mod[0] = new Array();
$mod[0]['id']= 50;
$mod[0]['pseudo'] = "Tete",
$mod[0]['profile'] = "gps",
$mod[0]['iconColor'] =  "5",
$mod[0]['distance'] = "5";
et en javascript
Code :
1
2
3
4
5
6
7
var mod = new Array();
mod[0] = new Array();
mod[0]['id']= 50;
mod[0]['pseudo'] = "Tete",
mod[0]['profile'] = "gps",
mod[0]['iconColor'] =  "5",
mod[0]['distance'] = "5";
la différence est comment dire quasi nulle.


pour finir je crois que tu confonds tableau et hashmap en php c'est couramment le cas car les deux se déclare avec un new Array()
je crois que ce que tu souhaites faire ce n'est pas un tableau mais une hashmap dont les clefs sont les id de tes modules.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
window.localStorage.setItem('modules', {
		"47" : {
			"id" : "47",
			"pseudo" : "Titi",
			"profile" : "gps",
			"iconColor" : "3",
			"distance" : "1",
			"start" : "2012-09-23 08:00:00",
			"refresh" : "08:20:00",
			"last" : "2012-09-23 08:00:00"
		},
		"48" : {
			"id" : "48",
			"pseudo" : "Toto",
			"profile" : "phone",
			"iconColor" : "10",
			"distance" : "0",
			"start" : "2012-09-23 08:00:00",
			"refresh" : "08:20:00",
			"last" : "2012-09-23 08:00:00"
		},
		"50" : {
			"id" : "50",
			"pseudo" : "Tete",
			"profile" : "gps",
			"iconColor" : "5",
			"distance" : "5",
			"start" : "2012-08-23 08:00:00",
			"refresh" : "10:20:00",
			"last" : "2012-09-23 08:00:00"
		},
		"64" : {
			"id" : "64",
			"pseudo" : "Tete",
			"profile" : "gps",
			"iconColor" : "5",
			"distance" : "5",
			"start" : "2012-08-23 08:00:00",
			"refresh" : "10:20:00",
			"last" : "2012-09-23 08:00:00"
		}
	});
pour pouvoir y accéder ainsi:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var mod = window.localStorage.getItem('module');
alert(mod['48'].profile);
alert(mod['64']['pseudo']);
 
//ajouter un module :
mod['75'] = {
			"id" : "75",
			"pseudo" : "Truc",
			"profile" : "gps",
			"iconColor" : "5",
			"distance" : "5",
			"start" : "2012-08-23 08:00:00",
			"refresh" : "10:20:00",
			"last" : "2012-09-23 08:00:00"
};
//supprimer un module :
delete mod['75'];
A+JYT
sekaijin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2012, 12h53   #12
pierrot10
Débutant
 
Inscription : mai 2005
Messages : 2 080
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 2 080
Points : 643
Points : 643
Salut sekaijin,
Je te remercie pour ta grande explication.
Oui je dois me mélanger les pinceaux et peut être que j'ai mal pensé.

Comme je l'ai écris je stocke des données de module dans localStorage.
Ces modules envoient leur positions à un serveur que je vais importer pour afficher leurs positions. je ne suis pas encore a cet étape alors je souhaite créer une array qui va stocker ses données afin de simuler. C'est la même chose car l'import sera stocké dans une array.

Je dois donc parcourir
Code :
1
2
 
var mod = window.localStorage.getItem('module');
pour avoir les informations de mon/mes module/s, soit id, pseudo, profile, iconColor.

Puis en basant sur l'id, utiliser la dernière position GPS (expl: 46.3456,6.00123)
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
var pos = new Array();
pos[47][0]='46.3456,6.000123';
pos[47][1]='46.3456,6.000124';
pos[47][2]='46.3456,6.000323';
pos[48][0]='46.3456,6.000123';
pos[48][1]='46.3456,6.000124';
pos[50][0]='46.3456,6.000123';
pos[50][1]='46.3456,6.000124';
pos[50][2]='46.3456,6.000323';
pos[50][3]='46.3456,6.000323';
pos[50][4]='46.3456,6.000323';
//etc...
(Les id n'ont pas forcément le même nombre de position)


Donc, j'ai probablement mal penser en voulant créer un deuxième tableau, mais l'idée était d'avoir un tableau avec les informations nécessaires pour afficher le marker.

J'ai probablement voulu faire trop compliqué, sorry. Je vais encore réfléchir à ça.

Mais peut être que vous auriez des recommandations à me donner.
Es-ce que j'ai été plus précis? Voyez-vous?
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2012, 13h20   #13
SylvainPV
Membre chevronné
 
Inscription : novembre 2012
Messages : 506
Détails du profil
Informations forums :
Inscription : novembre 2012
Messages : 506
Points : 694
Points : 694
Et pourquoi ne pas mettre les positions dans l'objet module ?
module.positions = array ?
SylvainPV est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2012, 13h21   #14
sekaijin
Expert Confirmé Sénior
 
Avatar de sekaijin
 
Homme
Urbaniste
Inscription : juillet 2004
Messages : 2 162
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 49
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Urbaniste
Secteur : Santé

Informations forums :
Inscription : juillet 2004
Messages : 2 162
Points : 5 148
Points : 5 148
tout comme en php les indices dans un tableau sont des entiers successifs

tout comme en php les clefs dans une hashmap sont des string libres.

tu ne peux donc pas écrire pos[47] pour obtenir la position d'id 47 (c'est pareil en php) il te faut utiliser une hasmap pos['47']
mais tu peux très bien ajouter des positions à ton tableau
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var pos = {}; //initialisation d'une hashmap vide
pos['47'] = new Array(); //ajout du tableau de position du module 47
pos['47'].push('46.3456,6.000123');
pos['47'].push('46.3456,6.000124');
pos['47'].push('46.3456,6.000123');
pos['48'] = new Array(); //ajout du tableau de position du module 48
pos['48'].push('46.3456,6.000123');
pos['48'].push('46.3456,6.000124');
pos['50'] = new Array(); //ajout du tableau de position du module 50
pos['50'].push('46.3456,6.000123');
pos['50'].push('46.3456,6.000124');
pos['50'].push('46.3456,6.000123');
pos['50'].push('46.3456,6.000123');
pos['50'].push('46.3456,6.000123');
//lecture de la 3eme position du module 50
alert(pos['50'][2]);
c'est exactement comme en php ton "tableau" (hashmap) pos contient des tableaux (indicés) donc à chaque fois que tu ajoutes une entrée dans pos il te faut créer un tableau le même code en php serait
Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$pos = new Array(); //initialisation d'une hashmap vide
$pos['47'] = new Array(); //ajout du tableau de position du module 47
$pos['47'].push('46.3456,6.000123');
$pos['47'].push('46.3456,6.000124');
$pos['47'].push('46.3456,6.000123');
$pos['48'] = new Array(); //ajout du tableau de position du module 48
$pos['48'].push('46.3456,6.000123');
$pos['48'].push('46.3456,6.000124');
$pos['50'] = new Array(); //ajout du tableau de position du module 50
$pos['50'].push('46.3456,6.000123');
$pos['50'].push('46.3456,6.000124');
$pos['50'].push('46.3456,6.000123');
$pos['50'].push('46.3456,6.000123');
$pos['50'].push('46.3456,6.000123');
//lecture de la 3eme position du module 50
echo ($pos['50'][2]);
si tu ne fais pas $pos['50'] = new Array(); $pos['50'] n'est pas un tableau et tu ne peux lui ajouter des éléments c'est pareil en javascript pos['50'] = new Array();
A+JYT
sekaijin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2012, 13h27   #15
pierrot10
Débutant
 
Inscription : mai 2005
Messages : 2 080
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 2 080
Points : 643
Points : 643
ben j'avais pensé à ça, mais je préfère dissocié ces données et ne pas les stockés dans Local Storage.

Le fait de les stocker dans une variable de manière à ce que ceci soit détruit lors que l'on quitte la page.
La c'est plus une question de "politique"

En fonction des modules, je préfère afficher les positions extraites "temporairement" du serveur..

Merci sekaijin, pour ta proposition, je vais l'étudiée
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2012, 14h48   #16
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 118
Points : 9 118
Je suis d'accord avec sekaijin quand il écrit...
Citation:
moi ce que je comprends pas c'est pourquoi tu veux construire une COPIE de ton array il te suffit d'utiliser une référence
néanmoins en attendant que tu ais revu ta façon de structurer tes données, tu peux transposer les données de la sorte
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var oSrc = oData['modules'];
var tab = []; // déclaration du tableau résultat
var i, j;
for( i in oSrc){
  for( j in oSrc[i]){
    if( j == 'id'){
      var label = oSrc[i][j];
      tab[ label] = []; // création d'un nouveau tableau
    }
    else{
      tab[label][j] = oSrc[i][j];
    }
  }
}
for( i in tab){
  if( window.console) console.log( tab[i]);
}
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 07h08.


 
 
 
 
Partenaires

Hébergement Web