IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Erreur dans un array


Sujet :

JavaScript

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 093
    Points : 943
    Points
    943
    Par défaut Erreur dans un array
    Bonjour à tous,
    j'essaye de construire un array multidimensionnel.
    C'est pas très compliqué
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    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!

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    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 !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 093
    Points : 943
    Points
    943
    Par défaut
    ha d'accord, mais alors je ne comprends comme même pas un truc,
    je l'ai bien detail comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    var detail = new Array(5,3);
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  4. #4
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 093
    Points : 943
    Points
    943
    Par défaut
    Ne serait-il pas ca?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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!

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 939
    Points : 44 112
    Points
    44 112
    Par défaut
    Bonjour,
    pas forcément une bonne idée que de déclarer les Array de cette façon à preuve l'ambiguïté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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;
      }
    }

  6. #6
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.
    One Web to rule them all

  7. #7
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 093
    Points : 943
    Points
    943
    Par défaut
    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!

  8. #8
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 093
    Points : 943
    Points
    943
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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!

  9. #9
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 939
    Points : 44 112
    Points
    44 112
    Par défaut
    Tu peux parcourir avec une boucle for i in objet.
    exemple à partir de tes données
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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))

  10. #10
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 093
    Points : 943
    Points
    943
    Par défaut
    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!

  11. #11
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  12. #12
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 093
    Points : 943
    Points
    943
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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!

  13. #13
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Et pourquoi ne pas mettre les positions dans l'objet module ?
    module.positions = array ?
    One Web to rule them all

  14. #14
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  15. #15
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 093
    Points : 943
    Points
    943
    Par défaut
    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!

  16. #16
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 939
    Points : 44 112
    Points
    44 112
    Par défaut
    Je suis d'accord avec sekaijin quand il écrit...
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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]);
    }

Discussions similaires

  1. [Tomcat] configuration d'une page d'erreur dans web.xml
    Par Super Castor dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 08/04/2009, 16h58
  2. Réponses: 7
    Dernier message: 29/08/2008, 16h27
  3. [Lien]erreur dans mon programme python
    Par durnambule dans le forum Général Python
    Réponses: 11
    Dernier message: 29/01/2004, 15h59
  4. [Erreur dans la lib...]
    Par Gonath dans le forum OpenGL
    Réponses: 3
    Dernier message: 22/12/2003, 10h02
  5. Erreur dans l'utilisation de SWAP
    Par mire dans le forum Langage
    Réponses: 12
    Dernier message: 15/03/2003, 22h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo