32 votes

Javascript shift() unshift() mnémoniques ?

Je trouve difficile de me rappeler ce que Array.shift() et Array.unshift() font.

Après quelques années, je dois encore consulter la référence de temps en temps quand j'ai besoin d'en utiliser un. Quelqu'un peut-il expliquer pourquoi ces noms ont été choisis et comment mémoriser ce que chacun fait ?

Je n'ai aucun problème avec Array.push() et Array.pop()

22voto

Chokchai Points 1684

Tel que je le sais.

La commande de décalage provient du décalage binaire [1]. Par exemple.

    001100
0 < 011000 // lorsque vous décalez à gauche
|
Youpi!

Je pense que c'est assez simple, c'est comme si vous le poussiez par derrière. Cela a du sens pour moi.

L'unshift est l'inverse du shift.

    001100
1 > 001100 // ils l'appellent unshift
    1001100
    |
    Youpi!

Voilà, j'espère que cela vous aidera!

[1] http://en.wikipedia.org/wiki/Bitwise_operation#Bit_shifts

9voto

Der Flatulator Points 2559

a.push(e) pousse e à la fin de a.

e = a.pop() pousse le dernier élément de a vers e.

a.unshift(e) ajoute e au début de a.

e = a.shift() obtient le premier élément de a vers e.

Utilisez push et pop pour les piles.

Utilisez unshift et pop pour les files d'attente. (Ou push et shift)

Je me souviens de la différence entre shift (destructeur) et unshift (constructeur) simplement en me rappelant que j'utilise un-shift pour en-enfiler, et shift est l'opposé de unshift.

9voto

user113215 Points 4402

Il suffit de penser à votre clavier:

Shift obtient une version en majuscule de la première touche que vous appuyez.

.shift() obtient le premier élément du tableau.

5voto

Que diriez-vous de :

SHIFTer fait dériver

Il retourne la première entrée à la variable.

et -

UNSHIFTer est un weenier qui se faufile dans la file

Insère l'argument comme première entrée dans le tableau

Oh, il y a ici des techniques psychologiques profondes à l'œuvre !! :-o Mais sérieusement, vous vous en souviendrez pour sa particularité :-)

4voto

Matt Patenaude Points 4007

C'est certainement la paire de noms de fonction la plus confuse. La seule rédemption que je puisse offrir est de se souvenir d'une des deux choses suivantes :

  • Shift peut être considéré comme "déplacer quelque chose," et peut-être pouvez-vous imaginer que si vous "décalez" un tableau un peu partout, quelque chose est susceptible de tomber (ou dans ce cas, de commencer). Unshift remet les choses en place.
  • C'est l'opposé de ce à quoi cela devrait ressembler. unshift semble être le contraire de quelque chose, mais en réalité, c'est mettre quelque chose dans le tableau.

Bonne chance !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X