2348 votes

Comment puis-je ajouter des éléments de tableau nouvelle au début d’un tableau en JavaScript ?

J'ai besoin d'ajouter des éléments (j'ai récupérer sur en temps opportun à l'aide d'AJAX), à la tête d'un tableau.

Par exemple, si mon tableau se présente comme suit:

[23, 45, 12, 67]

Et la réponse de mon appel AJAX est - 34, je veux la mise à jour du tableau comme suit:

[34, 23, 45, 12, 67]

Actuellement j'ai l'intention de faire comme ceci:

var newArray = [];
newArray.push(response);

for (int i=0; i < theArray.length; i++) {
    newArray.push(theArray[i]);
}

theArray = newArray;
delete newArray;

Est-il meilleure façon de le faire? N'JavaScript ont toute une fonctionnalité intégrée qui fait cela?

La complexité de ma méthode est - O(n) , et il serait vraiment intéressant de voir de meilleures implémentations.

3941voto

meagar Points 85475

Utiliser unshift. C'est comme push, sauf qu'il ajoute des éléments au début de la table au lieu de la fin.

  • unshift/push - ajout d'un élément au début/à la fin d'un tableau
  • shift/pop - retirer et de retourner le premier/dernier élément de la matrice et

Un schéma simple...

   unshift -> array <- push
   shift   <- array -> pop

et graphique:

          add  remove  start  end
   push    X                   X
    pop           X            X
unshift    X             X
  shift           X      X

Découvrez le MDN Tableau de la documentation. Pratiquement toutes les langues qui a la capacité de push/pop des éléments d'un tableau aurez également la possibilité d'annuler le déplacement de/changement (parfois appelés push_front/pop_front) éléments, vous ne devriez jamais avoir à mettre en œuvre vous-même.

1740voto

Maksym H. Points 3971

entrez la description de l'image ici

 var a = [23, 45, 12, 67];
    a.unshift(34);

    console.log(a); // [34, 23, 45, 12, 67]
 

53voto

dreftymac Points 7843

Cheatsheet rapide:

Les termes shift / unshift et push / pop peuvent être un peu déroutants, du moins pour les gens qui ne sont pas familiers avec la programmation en C.

Si vous n'êtes pas familier avec le jargon, voici une traduction rapide des termes alternatifs, qui peuvent être plus faciles à retenir:

 * array_unshift()  -  (aka Prepend ;; InsertBefore ;; InsertAtBegin )     
* array_shift()    -  (aka UnPrepend ;; RemoveBefore  ;; RemoveFromBegin )

* array_push()     -  (aka Append ;; InsertAfter   ;; InsertAtEnd )     
* array_pop()      -  (aka UnAppend ;; RemoveAfter   ;; RemoveFromEnd ) 
 

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