Comment ajouter de nouveaux éléments de tableau au début d'un tableau en Javascript ?

J'ai besoin d'ajouter ou de précéder des éléments au début d'un tableau.

Par exemple, si mon tableau ressemble à celui ci-dessous :

[23, 45, 12, 67]

Et la réponse de mon appel AJAX est 34, je veux que le tableau mis à jour soit le suivant :

[34, 23, 45, 12, 67]

Actuellement, je prévois de le faire comme ceci :

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

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

theArray = newArray;
delete newArray;

Y a-t-il une meilleure façon de procéder ? Javascript a-t-il une fonctionnalité intégrée qui permet de faire cela ?

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

Solution

Utilisez [unshift][1]. C'est comme [push][2], sauf qu'il ajoute des éléments au début du tableau au lieu de la fin.

  • unshift/push - Ajouter un élément au début/à la fin d'un tableau.
  • shift/pop - Supprime et retourne le premier/dernier élément d'un tableau.

Un schéma simple...


   unshift -> array 
Commentaires (2)

! [image des opérations du tableau] [1]

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

[1] : http://i.stack.imgur.com/1pQk8.jpg

Commentaires (8)

Cheatsheet rapide:

Les termes shift/unshift et push/pop peuvent être un peu déroutants, du moins pour les personnes qui ne sont pas familières 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 ) 
Commentaires (0)