Partage
  • Partager sur Facebook
  • Partager sur Twitter

optimiser un tableau javascript

Sujet résolu
    27 janvier 2023 à 20:54:33

    Bonsoir
    Voici un bout de code que j'ai développé pour une appli web.
    J'aurais aimé avoir qu'un seul tableau pour optimiser mon code tout en ayant la possibilité de récupérer le href et le nombre d'annonce d'une ville précise.
    Est ce que c'est possible ? Si oui, comment pourrais je faire ?
    Merci d'avance pour votre aide.

    // tableau liste zone
    tabListZoneMap = new Array("zoneParis","zoneMarseille", "zoneLyon");
    
    // tableau zone id
    tabZoneMap = new Array();
    tabZoneMap["zoneParis"] = new Array("3", "/paris");
    tabZoneMap["zoneMarseille"] = new Array("0", "/marseille");
    tabZoneMap["zoneLyon"] = new Array("1", "/lyon");
    
    // boucle sur le tableau
    tabListZoneMap.forEach(function(item, index, array) {
    	var nbAnnonce= tabZoneMap[item][0];
    	var href= tabZoneMap[item][1];
    	console.log(item, index);
    	console.log(nbAnnonce);
    	console.log(href);
    });
    
    // afficher une zone précise
    var nbAnnonceParis= tabZoneMap["zoneParis"][0];
    var hrefParis= tabZoneMap["zoneParis"][1];



    -
    Edité par cirdec 28 janvier 2023 à 9:29:34

    • Partager sur Facebook
    • Partager sur Twitter
      28 janvier 2023 à 15:18:11

      Bonjour. Si j'ai bien compris ta demande, il te faut un objet littéral de ce genre

      tabZoneMap = {
         zoneParis: [3, "/paris"],
         zoneMarseille: [0, "/marseille"],
         zoneLyon: [1, "/Lyon"]
      };

      Tu peux demander par exemple :

      tabZoneMap.zoneParis[1] 

      Nota: préférer tab = ['un', 'deux'] à tab = new Array('un', 'deux') car cette notation n'est pas performante.

      • Partager sur Facebook
      • Partager sur Twitter
        28 janvier 2023 à 18:41:50

        J'aurai même dis que les tableaux ne sont peut-être pas la solution au vu de la demande :

        const zoneMap = {
            zoneParis: { nbAnnonce: 3, link: '/paris' },
            zoneMarseille: { nbAnnonce: 0, link: '/marseille' },
            zoneLyon: { nbAnnonce: 1, link: '/lyon' },
        }

        Et du coup par exemple :

        // Récupération des informations d'une zone
        const nbAnnonceParis = zoneMap.zoneParis.nbAnnonce
        const linkParis = zoneMap.zoneParis.link
        
        // Ou directement
        const { nbAnnonce: nbAnnonceParis, link: linkParis } = zoneMap.zoneParis
        
        // Et pour boucler
        for (let [key, zone] of Object.entries(zoneMap)) {
            const { nbAnnonce, link } = zone
            console.log(key, nbAnnonce, link)
        }

        On pourrait même avoir :

        const zoneSelected = "zoneParis"
        const { nbAnnonce: nbAnnonceParis, link: linkParis } = zoneMap[zoneSelected]

        D'ailleurs, "var" ne s'utilise plus, il est vivement conseiller d'utiliser "let" et "const"

        -
        Edité par quenti77 28 janvier 2023 à 18:43:06

        • Partager sur Facebook
        • Partager sur Twitter
          29 janvier 2023 à 17:56:01

          merci, pour ces réponses, je vais creuser dans ce sens.
          • Partager sur Facebook
          • Partager sur Twitter

          optimiser un tableau javascript

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown