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 :

Copie de tableau (sans passage d'adresse)


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 15
    Points : 16
    Points
    16
    Par défaut Copie de tableau (sans passage d'adresse)
    Bonjour,

    Je ne sais pas comment formuler ca mais voici un exemple concret :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var a = new Array(2);
    var b = a;
    b[0] = 5;
    alert(a[0]);// affiche 5
    Ce que j'aimerai c'est que ca affiche 2. Pour l'instant la méthode que j'ai trouvé est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function copy(tab) {
      var res = new Array();
      for(var i=0; i<tab.length; i++)
        res[i] = tab[i];
      return res;
    }
     
    var a = new Array(2);
    var b = copy(a);
    b[0] = 5;
    alert(a[0]);// affiche 2
    Mais j'aimerai quelque chose de plus performant vu que mon script vise à être le plus rapide possible (manipulation d'images dans un canvas).

  2. #2
    Membre actif Avatar de nod__
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 176
    Points : 226
    Points
    226
    Par défaut
    tu peux peut être aller voir du coté de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var tonArray = [2],
        nouvelArray = tonArray.slice();
     
    nouvelArray[0] = 5;
    alert(tonArray[0]);

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 319
    Points : 351
    Points
    351
    Par défaut
    Ouép, "slice" ou "concat" appelées sans arguments te produiront un clone du tableau.

  4. #4
    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 : 54
    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 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Attention toutefois, comme le souligne nod__, la notation
    Signifie que tu definis un tableau contenant 2 valeurs, pas un tableau dont la première valeur est 2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var a= new Array(2);
    alert(a.length);
    alert(a[0]);

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 15
    Points : 16
    Points
    16
    Par défaut
    Merci à tous (erreur de mélange de languages avec Array(2)).

    Je vais utiliser slice().

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Passage d'adresse d'un tableau en paramêtre
    Par Spidyy dans le forum Débuter
    Réponses: 7
    Dernier message: 20/06/2009, 13h54
  2. remplir un tableau sans doublons ...
    Par ryo-san dans le forum C
    Réponses: 22
    Dernier message: 10/11/2005, 12h43
  3. [HTML] Tableau sans departagement des cellules
    Par nimport nawak dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 09/05/2005, 17h58
  4. [HTML / CSS ... ?] Tableau sans AUCUNE marge
    Par PierrotY dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 19/04/2005, 11h13
  5. [Debutant(e)]passage par adresse?
    Par cap2fosse dans le forum Langage
    Réponses: 4
    Dernier message: 24/09/2004, 10h05

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