Question sur la fonction .shift() pour les Array()

barbe91 Messages postés 20 Date d'inscription lundi 20 avril 2009 Statut Membre Dernière intervention 24 novembre 2011 - 24 avril 2009 à 15:32
barbe91 Messages postés 20 Date d'inscription lundi 20 avril 2009 Statut Membre Dernière intervention 24 novembre 2011 - 26 avril 2009 à 18:52
Bonjour à tous et à toutes,
en ce moment je bosse sur un script où j'ai besoin de me servir plusieurs fois d'un même tableau, d'où des réinitialisations fréquentes...
La question du jour est donc:
pensez-vous que la méthode shift() est ce qu'il y a de plus adapté pour libérer entièrement un tableau (avec l'aide d'un for bien sûr) ?

Encore merci de votre attention.

13 réponses

Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
24 avril 2009 à 15:53
Bonjour,

pourquoi libérer ?

_ met une variable=new Array() dans une fonction, elle sera locale
  donc réinitialisée à l'appel
_ ou ton_tableau.length ne peut pas être mis à 0 ?

Cordialement [mon Site] [M'écrire] Bul
0
barbe91 Messages postés 20 Date d'inscription lundi 20 avril 2009 Statut Membre Dernière intervention 24 novembre 2011
24 avril 2009 à 16:06
Coucou Bul3, décidément tu es là tout le temps  ^^
En locale ça ne m'arrange pas du tout, le tableau doit-être réutilisé par plusieurs fonctions.
Sinon pour la taille, le faite de remettre la taille à 0 signifie que l'on supprime vraiment tout ce qui a été enregistré précédemment?

Merci pour ta réponse bien sûr!
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
24 avril 2009 à 16:11
pourquoi ne pas essayer ??

    function affiche()
    {    alert(t.length);
        for ( var n=0;n<t.length;n++ )
        {    alert(t[n]);    }
    }
    var t=new Array("zéro","un","deux");
    affiche();
    t.length=0;
    affiche();
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
24 avril 2009 à 16:15
il doit bien y avoir d'autres possibilités ( probablement bien mieux )
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
barbe91 Messages postés 20 Date d'inscription lundi 20 avril 2009 Statut Membre Dernière intervention 24 novembre 2011
24 avril 2009 à 16:25
Oué ok ça c'est sûr ça marche mais pour les données précédentes elles deviennent quoi, je ne sais pas trop comment ça fonctionne sur le web, sur pc, elles seraient quand même gardées en mémoire dans une pile.
0
@karamel Messages postés 1855 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 18 avril 2024 153
24 avril 2009 à 16:47
bonjour
 a tu essayer avec splice
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
24 avril 2009 à 18:17
et si tu faisais les shfit dont tu parlais ? elles deviendraient quoi ?
et quand si elles sont dans une variable locale, en fin de fonction, elles deviennent quoi ?
à mon avis c'est pareil.
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
25 avril 2009 à 12:41
>>je ne sais pas trop comment ça fonctionne sur le web,
>>sur pc, elles seraient quand même gardées en mémoire dans une pile.
ce n'est pas un problème sur le web ou sur le pc !!!!
bien sûr que non, elles ne sont pas conservées !
enfin.... pas avec un langage évolué, l'interpréteur javascript, ici, fait ce qu'il faut,
tu pourrais avoir ce genre d'interrogation avec des langages dit de "bas niveau"
@+
0
barbe91 Messages postés 20 Date d'inscription lundi 20 avril 2009 Statut Membre Dernière intervention 24 novembre 2011
25 avril 2009 à 20:13
AAHH d'accord, bien compris, comme je suis beaucoup plus habitué au C++, je me posais donc cette question.

Et bien d'accord, je ferais cela avec shift, merci pour vos réponses!
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
26 avril 2009 à 08:44
>>je ferais cela avec shift,
quelle idée ????
tu vas faire une boucle de shift là ou 1 seule
instruction suffit : ton_Array.length=0 !?!?
@+
0
barbe91 Messages postés 20 Date d'inscription lundi 20 avril 2009 Statut Membre Dernière intervention 24 novembre 2011
26 avril 2009 à 17:43
OK OK ne te fâche mon bon Bul3 ^^, je mettrais donc la taille à 0...
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
26 avril 2009 à 18:40
j'ai l'air fâché ? c'est pas mon genre ça     ;o)
tu sais, chacun fait comme il le sent, je ne donne
    pas de conseils, juste ce que je ferai, et je
    me goure souvent !
@+
0
barbe91 Messages postés 20 Date d'inscription lundi 20 avril 2009 Statut Membre Dernière intervention 24 novembre 2011
26 avril 2009 à 18:52
Nan mais dans ce cas-ci c'est parfait, je ferais comme tu as dit ^^
0
Rejoignez-nous