Javascript'te bir dizinin başına nasıl yeni dizi elemanları ekleyebilirim?

Bir dizinin başına eleman ekleme veya ekleme ihtiyacım var.

Örneğin, dizim aşağıdaki gibi görünüyorsa:

[23, 45, 12, 67]

Ve AJAX çağrımdan gelen yanıt 34, güncellenmiş dizinin aşağıdaki gibi olmasını istiyorum:

[34, 23, 45, 12, 67]

Şu anda bu şekilde yapmayı planlıyorum:

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

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

theArray = newArray;
delete newArray;

Bunu yapmanın daha iyi bir yolu var mı? Javascript'in bunu yapan herhangi bir yerleşik işlevi var mı?

Benim yöntemimin karmaşıklığı O(n)dir ve daha iyi uygulamaları görmek gerçekten ilginç olacaktır.

Çözüm

unshift][1] kullanın. Bu [push`][2] gibidir, ancak elemanları dizinin sonu yerine başına ekler.

  • unshift/push - bir dizinin başına/sonuna eleman ekler
  • shift/pop - bir dizinin ilk/son elemanını kaldırır ve döndürür

Basit bir diyagram...


   unshift -> array 
Yorumlar (2)

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

Hızlı Bilgi Sayfası:

Shift/unshift ve push/pop terimleri, en azından C'de programlamaya aşina olmayan kişiler için biraz kafa karıştırıcı olabilir.

Eğer terminolojiye aşina değilseniz, burada hatırlaması daha kolay olabilecek alternatif terimlerin hızlı bir çevirisini bulabilirsiniz:

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

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