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 :

Inversion d'éléments dans un tableau


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Femme Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2004
    Messages : 282
    Par défaut Inversion d'éléments dans un tableau
    Fonction qui inverse les paires d’élément d’un tableau passé en paramètre Ex. [a1, a2, b1, b2, c1, c2] devient [a2, a1, b2, b1, c2, c1]. La fonction retourne un nouveau tableau.

    Je trouve que je suis incapable de commencer

  2. #2
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    un début
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for(i=0;2*i+1<t.length;i++)

  3. #3
    Membre éclairé
    Femme Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2004
    Messages : 282
    Par défaut
    J'ai pensé d'utiliser reverse(), mais ce n'est pas le rendu souhaité.
    Pour ta boucle, j'ai compris qu'il faut prendre la moitié du tableau (indice 0, 1 et 2), mais comment faire pour le traitement ?

  4. #4
    Membre éclairé
    Femme Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2004
    Messages : 282
    Par défaut
    Citation Envoyé par Matthieu2000 Voir le message
    un début
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for(i=0;2*i+1<t.length;i++)
    Qui pourras ajouter ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	var t1 = new Array('a1', 'a2', 'b1', 'b2', 'c1', 'c2');
    	var t2 = new Array;
    	for(i=0;i<t1.length;i=i+2){
    		t2[i] = t1[i+1]; 
    		t2[i+1] = t1[i];
    	}
    [Edit] Si on peut avoir un nombre impair d'éléments :
    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    	var t1 = new Array('a1', 'a2', 'b1', 'b2', 'c1', 'c2', 'd1');
    	var t2 = new Array;
    	var n = t1.length;
    	for(i=0;i<n;i=i+2){
    	   if(i!=n-1){
    		t2[i] = t1[i+1];
    		t2[i+1] = t1[i];
    	   } else {
    		t2[i] = t1[i];
    	   }
    	}
    N.B. la version de SylvainPV (ci-après) est nettement plus élégante.
    Dernière modification par Invité ; 13/08/2013 à 08h39.

  6. #6
    Membre éclairé
    Femme Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2004
    Messages : 282
    Par défaut
    Merci, c'est interessant.

  7. #7
    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
    Par défaut
    Il y a aussi la méthode Array.map qui peut être intéressante.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ["a1","a2","b1","b2","c1","c2"].map(function(value,index,array){ return (index%2 ? array[index-1] : array[index+1]) })
    Et pour gérer le cas où on passe un nombre impair d'éléments:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ["a1","a2","b1","b2","c1","c2","d1"].map(function(v,i,a){ return (i%2 ? a[i-1] : a[i+1]) || a[i] })

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

Discussions similaires

  1. inserer un élément dans un tableau
    Par caesa dans le forum Oracle
    Réponses: 1
    Dernier message: 20/03/2006, 17h03
  2. [Tableaux] ajout d'élément dans un tableau
    Par maximenet dans le forum Langage
    Réponses: 3
    Dernier message: 28/02/2006, 20h24
  3. perte d'éléments dans un tableau dans $_SESSION
    Par jibouze dans le forum Langage
    Réponses: 10
    Dernier message: 15/11/2005, 17h01
  4. Compter le nombre d'élément dans un tableau
    Par cryptorchild dans le forum Langage
    Réponses: 6
    Dernier message: 08/07/2005, 13h01
  5. [HTML/CSS]désigner un élément dans un tableau de l'extérieur
    Par FrankOVD dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 28/06/2005, 21h55

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