Mehmet

WFN Üye
Konular
1,851
Mesajlar
1,852
Çözüm
0
Ticaret Puanı
0
Üyelik
1 Ay 6 Gün
Konum
YurtDışı
Web Sitesi
Var
Alanı
Google Adsense
1/1
Konu sahibi

JavaScript push nedir?​


JavaScript'te push(), bir dizinin sonuna bir veya daha fazla eleman ekleyen ve işlemden sonra dizinin yeni uzunluğunu döndüren dizi metodudur. Mevcut diziyi doğrudan değiştirir; yeni bir dizi oluşturmaz. Örneğin const sayilar = [1, 2]; sayilar.push(3); çalıştırıldığında dizi [1, 2, 3] olur ve dönüş değeri 3'tür.

Nasıl çalışır?​


push(...elemanlar) çağrısında verilen her değer, dizinin mevcut sonuna sırayla eklenir. Hiçbir argüman verilmezse dizi değişmez ve mevcut uzunluğu döndürülür. Birden fazla değer tek çağrıda eklenebilir. Eleman olarak dizi verirseniz içindeki değerler ayrı ayrı eklenmez; dizi, tek bir eleman olarak eklenir.

Kod:
const gorevler = ["listele"];

const yeniUzunluk = gorevler.push("ekle", "sil");

console.log(gorevler);     // ["listele", "ekle", "sil"]
console.log(yeniUzunluk);  // 3

Buradaki yeniUzunluk yeni dizinin uzunluğudur. push()'un kendisi eklenen elemanı veya güncellenmiş diziyi döndürmez. Bu nedenle sonucu yeni bir değişkene atarken neyi kullanmak istediğinizi kontrol edin.

Çalıştırılabilir en küçük örnek​


Aşağıdaki kodu tarayıcının geliştirici konsoluna veya Node.js dosyasına olduğu gibi yerleştirebilirsiniz:

  1. const meyveler = ["elma"]; ile başlangıç dizisini oluşturun.
  2. const uzunluk = meyveler.push("armut"); ile sonuna yeni eleman ekleyin.
  3. console.log(meyveler, uzunluk); ile diziyi ve dönüş değerini kontrol edin.

Beklenen çıktı ["elma", "armut"] 2 biçimindedir. Diziye yeni değer eklenmiş fakat ekranda yalnızca 2 görüyorsanız bu hata değildir; push() dönüş değeri uzunluktur. Dizinin kendisini görmek için meyveler değişkenini yazdırın.

push, concat ve spread farkı​


Diziyi değiştirip değiştirmeme kararı, hangi yöntemi kullanmanız gerektiğini belirler:

YöntemMevcut diziyi değiştirir mi?Sonuç
push(x)EvetYeni uzunluğu döndürür
concat(x)HayırYeni dizi döndürür
[...dizi, x]HayırYeni dizi oluşturur

Not: concat'a dizi argümanı verildiğinde elemanları bir düzey birleştirebilir; push'a verilen dizi ise tek elemandır. Yalnız dönüş tipine bakarak ikisinin her girdide eşdeğer olduğunu varsaymayın.

React gibi durumun doğrudan değiştirilmemesinin önemli olduğu yapılarda çoğunlukla push() yerine yeni dizi oluşturmak gerekir:

Kod:
const eskiListe = ["A", "B"];
const yeniListe = [...eskiListe, "C"];

console.log(eskiListe); // ["A", "B"]
console.log(yeniListe); // ["A", "B", "C"]

Buna karşılık yerel bir diziyi adım adım dolduruyor veya bir döngüde sonuç biriktiriyorsanız push() pratik ve doğrudan tercihtir.

Sık yapılan hatalar​


  • Dönüş değerini dizi sanmak: const sonuc = dizi.push("x"); sonrasında sonuc eklenen dizi değil, sayısal uzunluktur.
  • İç içe dizi beklememek: liste.push([1, 2]); ifadesi iki eleman değil, tek bir dizi elemanı ekler. Elemanları ayrı eklemek için liste.push(1, 2) veya liste.push(...[1, 2]) kullanılır.
  • Sabit değişken ile yöntemi karıştırmak: const ile tanımlanan bir dizinin içeriği push() ile değiştirilebilir; ancak değişkeni başka bir diziye yeniden atayamazsınız.
  • Dizi olmayan değerde kullanmak: Dizi prototipindeki push, uygun length ve sayısal özellikleri olan array-like nesnelere call ile de uygulanabilen generic bir metottur. Ancak sıradan nesnenin kendiliğinden push metodu yoktur. undefined.push("x") gibi bir çağrı çalışma zamanı hatası üretir; önce değerin gerçekten dizi olduğundan emin olun.

Sık sorulan sorular​


push() ile unshift() arasındaki fark nedir?​

push() elemanı dizinin sonuna, unshift() ise başına ekler. Sıra önemliyse hangi uçtan ekleme yapmak istediğinize göre seçim yapın.

Bir dizinin son elemanını push() ile silebilir miyim?​

Hayır. push() ekleme içindir. Son elemanı çıkarmak için pop(), ilk elemanı çıkarmak için shift() kullanılır.

push() nesnelere de eleman ekler mi?​

Sıradan nesnede doğrudan push yoktur; özellik için nokta veya köşeli parantez kullanılır. Teknik olarak Array.prototype.push.call, uygun array-like nesnenin sayısal özelliklerini ve length değerini değiştirebilir. Bunu normal nesneye adlandırılmış alan eklemeyle karıştırmayın.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Robotlar:
  • Anthropic