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 :

Shuffle sur un array javacript


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut Shuffle sur un array javacript
    La question n'est pas comment faire le shuffle, j'y arrive tr�s bien autrement.

    J'�tais juste en train de m'amuser avec diff�rentes syntaxes et j'ai abouti � ce script qui me pose deux interrogation:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var ar = new Array("0","1","2","3","4","5","6","7","8","9");
    Array.prototype.shuffle= function () 
    { 
    for( var j=new Array(); this[0]; j.push( this.splice(Math.floor(Math.random() * this.length),1)));
    this=this.concat(j)
    } 
     
    ar.shuffle(); 
    alert(ar)
    il refuse de m'affecter this=this.concat(j)
    pourtant this se vide bien.
    Je suis oblig� de faire:
    ce qui m'oblige � appeler la le prototype diff�remment :
    Pourquoi ne puis-je affecter j a this ?




    D'autre part si mon array est numerique au lieu d'alpha
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var ar = new Array(0;1;2;3;4;5;6;7;8;9);
    �a ne fonctionne plus du tout ???
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  2. #2
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    si je boucle sur j pas de soucis ...
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var ar = new Array("0","1","2","3","4","5","6","7","8","9");
    Array.prototype.shuffle= function () 
    { 
    for( var j=new Array(); this[0]; j.push( this.splice(Math.floor(Math.random() * this.length),1)));
    var i=0
    while(j[i++]){this[i-1]=j[i-1]}
    } 
     
    ar.shuffle(); 
    alert(ar)
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  3. #3
    Membre Expert
    Avatar de gwyohm
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Par d�faut
    Salut,

    Le fait qu'on ne puisse attaquer this en direct ne me surprend pas, je l'avais d�j� observ�; j'imagine que this est readonly.
    Pour le probleme des valeurs num�riques, ca vient je pense de ton test d'it�ration :
    this[0] vaut 0, donc false...
    il faut donc mettre
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    for( var j=new Array(); this[0]!=null; j.push( this.splice(Math.floor(Math.random() * this.length),1)));
    return j;
    }

  4. #4
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    arf biensur pour this[0] !!! bien vu

    fonctionne aussi

    parcontre comment se fait il que je puisse faire un push dans this et pas un concat ???

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    while(j[i++]){this.push(j[i-1])}
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  5. #5
    Membre Expert
    Avatar de gwyohm
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Par d�faut
    ce n'est selon moi pas la m�thode concat qui est interdite mais l'assignement � this :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    Array.prototype.shuffle= function ()
    {
    for( var j=new Array(); this[0]!=null; j.push( this.splice(Math.floor(Math.random() * this.length),1)));
    this.concat(j);
    }
    est autoris� (mais sans int�ret car concat renvoie un nouveau tableau), mais l'�criture de
    est interdite; la partie de gauche d'un assignement doit �tre une variable...
    de m�me
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    String.prototype.truc = function() {
    	this = 'truc';
    }
    var aa = "aa";
    aa.truc();
    alert(aa);
    ne passe pas

  6. #6
    Expert confirm�
    Avatar de le_chomeur
    Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2006
    Messages
    3 653
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 3 653
    Par d�faut
    Tu peux faire une v�rification , fait une boucle sur tous les attributs / m�thode de this et v�rifit que la m�thode concat existe

Discussions similaires

  1. (Tres debutant) :Question sur Tableau array
    Par alexwolf dans le forum Langage
    R�ponses: 5
    Dernier message: 28/11/2007, 13h49
  2. [VBA-E] Question sur les Array de plages
    Par ruzakruzak dans le forum Macros et VBA Excel
    R�ponses: 6
    Dernier message: 13/06/2007, 15h14
  3. [Tableaux] Effectuer un array_intersect sur n Array
    Par caledonien dans le forum Langage
    R�ponses: 3
    Dernier message: 20/03/2007, 10h21
  4. R�ponses: 7
    Dernier message: 10/01/2007, 00h37
  5. tutoriels sur vertex arrays
    Par franc82 dans le forum OpenGL
    R�ponses: 3
    Dernier message: 01/11/2006, 21h02

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