Comment puis-je ajouter de nouveaux éléments de tableau au début d'un tableau en JavaScript?

J'ai besoin d'ajouter ou de préciser des éléments au début 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 de 34 , je veux que le tableau mis à jour soit comme suit:

 [34, 23, 45, 12, 67] 

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

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

Y a-t-il une meilleure façon de le faire? Est-ce que JavaScript possède 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.

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

  • unshift / push – ajoute un élément au début / fin d'un tableau
  • shift / pop – supprime et renvoie le premier / dernier élément et le tableau

Un schéma simple …

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

Et tableau:

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

Consultez la documentation MDN Array . Pratiquement toutes les langues qui ont la possibilité de pousser / des éléments pop à partir d'un tableau auront également la capacité de désaisonner / déplacer (parfois appelé push_front / pop_front ) des éléments, vous ne devriez jamais avoir à les mettre en œuvre.

Image des opérations de tableau

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

Avec ES6, utilisez l'opérateur spread ... :

 var arr=[23, 45, 12, 67] ; arr=[34,...arr]; // RESULT : [34,23, 45, 12, 67] 

Quick Cheatsheet:

Les termes shift / unshift et push / pop peuvent être un peu confus, du moins pour les personnes qui ne connaissent peut-être pas la programmation de C.

Si vous n'êtes pas familiarisé avec le jargon, voici une traduction rapide de 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 ) 

Une autre façon de le faire via concat

 var arr = [1, 2, 3, 4, 5, 6, 7]; console.log([0].concat(arr)); 

Vous avez un tableau: var arr = [23, 45, 12, 67];

Pour ajouter un élément au début, vous souhaitez utiliser l' splice :

 var arr = [23, 45, 12, 67]; arr.splice(0, 0, 34) console.log(arr);