stelle - javascript new array




Wie kann ich neue Array-Elemente am Anfang eines Arrays in JavaScript hinzufügen? (4)

Verwenden Sie bei ES6 den Spread-Operator ... :

DEMO

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

console.log(arr)

Ich muss Elemente am Anfang eines Arrays hinzufügen oder voranzustellen.

Zum Beispiel, wenn mein Array wie folgt aussieht:

[23, 45, 12, 67]

Und die Antwort von meinem AJAX-Aufruf ist 34 , ich möchte das aktualisierte Array wie folgt aussehen:

[34, 23, 45, 12, 67]

Momentan plane ich es so zu machen:

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

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

theArray = newArray;
delete newArray;

Gibt es einen besseren Weg, dies zu tun? Hat JavaScript eingebaute Funktionen, die das tun?

Die Komplexität meiner Methode ist O(n) und es wäre wirklich interessant, bessere Implementierungen zu sehen.


Eine andere Möglichkeit, dies durch concat zu tun

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

Der Unterschied zwischen concat und unshift besteht darin, dass concat ein neues Array zurückgibt. Die Leistung zwischen ihnen konnte hier gefunden here .

function fn_unshift() {
  arr.unshift(0);
  return arr;
}

function fn_concat_init() {
  return [0].concat(arr)
}

Hier ist das Testergebnis


unshift Es ist wie push , nur dass am Anfang des Arrays statt am Ende Elemente hinzugefügt werden.

  • unshift / push - füge ein Element am Anfang / Ende eines Arrays hinzu
  • shift / pop - Entferne und gebe das erste / letzte Element von und array zurück

Ein einfaches Diagramm ...

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

und Diagramm:

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

Überprüfen Sie die MDN-Array-Dokumentation . Praktisch jede Sprache, die die Fähigkeit hat, Elemente aus einem Array zu pushen / zu puffern, kann auch Elemente mit Verschiebung / Verschiebung (manchmal push_front / pop_front ) enthalten, die Sie niemals selbst implementieren müssen.


Kurzer Cheatsheet:

Die Begriffe Shift / Unshift und Push / Pop können etwas verwirrend sein, zumindest für Leute, die mit der Programmierung in C nicht vertraut sind.

Wenn Sie mit dem Jargon nicht vertraut sind, hier ist eine schnelle Übersetzung von alternativen Begriffen, die leichter zu merken sind:

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

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




arrays