Hoe kan ik nieuwe array-elementen toevoegen aan het begin van een array in Javascript?

Ik moet elementen toevoegen of toevoegen aan het begin van een array.

Bijvoorbeeld, als mijn array er uitziet zoals hieronder:

[23, 45, 12, 67]

En het antwoord van mijn AJAX oproep is 34, dan wil ik dat de bijgewerkte array er als volgt uitziet:

[34, 23, 45, 12, 67]

Momenteel ben ik van plan om het als volgt te doen:

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

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

theArray = newArray;
delete newArray;

Is er een betere manier om dit te doen? Heeft Javascript een ingebouwde functionaliteit die dit doet?

De complexiteit van mijn methode is O(n) en het zou erg interessant zijn om betere implementaties te zien.

Oplossing

Gebruik [unshift][1]. Het is als [push][2], behalve dat het elementen toevoegt aan het begin van de array in plaats van het einde.

  • unshift/push - voeg een element toe aan het begin/eind van een array
  • shift/pop - verwijder en geef het eerste/laatste element van een array terug

Een eenvoudig schema...


   unshift -> array 
Commentaren (2)

array operations image

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

Quick Cheatsheet:

De termen shift/unshift en push/pop kunnen een beetje verwarrend zijn, althans voor mensen die niet vertrouwd zijn met programmeren in C.

Als u niet bekend bent met de lingo, is hier een snelle vertaling van alternatieve termen, die misschien gemakkelijker te onthouden zijn:

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

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