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’te array, birden fazla değeri tek bir değişkende, sıralı ve indekslenebilir biçimde tutan veri yapısıdır. İlk elemanın indeksi 0 olur; elemanlara köşeli parantezle erişilir ve dizi gerektiğinde büyüyüp küçülebilir. Örneğin ["Ali", "Ayşe", "Mehmet"] bir isim dizisidir.

JavaScript array nasıl çalışır?​


Dizi, elemanların sırasını korur. isimler[0] ilk elemana, isimler[1] ikinci elemana erişir. Sıradan, boşluksuz bir dizide eleman sayısı length ile okunur. Seyrek bir dizide boş yuvalar bulunabileceğinden length, gerçekten atanmış eleman sayısıyla her zaman aynı değildir. Diziler yalnızca metin tutmak zorunda değildir; sayı, boolean, nesne, başka dizi veya farklı türler aynı dizide bulunabilir. Ancak uygulama kodunu anlaşılır tutmak için çoğunlukla aynı türde veriler kullanılır.

Kod:
const urunler = [
  { ad: "Klavye", fiyat: 1200, stokta: true },
  { ad: "Fare", fiyat: 700, stokta: false },
  { ad: "Kulaklık", fiyat: 1800, stokta: true }
];

const stoktakiUrunler = urunler.filter(urun => urun.stokta);
const adlar = stoktakiUrunler.map(urun => urun.ad);

console.log(adlar);

Bu örneğin beklenen çıktısı ["Klavye", "Kulaklık"] değeridir. Çıktı boş dizi ise kod çalışmış olabilir; bu durumda stokta koşulunu sağlayan eleman yoktur. filter veya map tanınmıyorsa değer gerçek bir array olmayabilir ya da çalışma ortamında farklı bir değişken kullanılmış olabilir. filter yeni bir dizi üretir; başlangıçtaki urunler dizisini doğrudan değiştirmez.

Array oluşturma ve temel işlemler​


En okunabilir oluşturma biçimi dizi sabitidir:

Kod:
const sayilar = [10, 20, 30];
sayilar.push(40);          // Sona ekler
const ilk = sayilar[0];    // 10
const son = sayilar.pop(); // Sondan çıkarır: 40

console.log(sayilar.length); // 3
console.log(ilk);            // 10
console.log(son);            // 40

Başarılı sonuçta sayilar dizisi [10, 20, 30] olur. pop ve push dizinin kendisini değiştirir. Değiştirmeden yeni bir dizi oluşturmak için yayma sözdizimi kullanılabilir:

Kod:
const eskiListe = ["a", "b"];
const yeniListe = [...eskiListe, "c"];

İhtiyaca göre temel seçimler şöyledir:

AmaçKullanımSonuç
Sona eleman eklemekpush(deger)Mevcut diziyi değiştirir
Elemanları dönüştürmekmap(callback)Yeni dizi üretir
Koşula uyanları seçmekfilter(callback)Yeni, süzülmüş dizi üretir
Bir elemanı bulmakfind(callback)İlk eşleşen elemanı veya undefined döndürür

Dizide belirli bir eleman olup olmadığını kontrol etmek için ilkel değerlerde includes kullanılabilir. Belirli bir koşulu test etmek için some veya tüm elemanları test etmek için every tercih edilir. Bir diziyi ekranda göstermek için çoğu zaman for...of döngüsü ya da forEach kullanılabilir.

Sık yapılan hatalar ve doğru kararlar​


  • İndeksin 1 değil 0 ile başladığını unutmayın. dizi[dizi.length] son elemanı değil, sınırın dışındaki değeri verir; son eleman için dizi[dizi.length - 1] veya uygun bir son-eleman yaklaşımı kullanılır.
  • Bir değişkenin gerçekten array olup olmadığını typeof ile kontrol etmeyin. typeof [] sonucu genel olarak "object" olur; doğru kontrol Array.isArray(deger) şeklindedir.
  • Sayısal bir dizide sort() çağrısının varsayılanını sayısal karşılaştırma sanmayın. Varsayılan sıralama değerleri metin gibi karşılaştırabildiği için sayısal sıralamada sayilar.sort((a, b) => a - b) kullanın. sort mevcut diziyi değiştirir.
  • Diziyi nesneyle karıştırmayın. Sıralı bir liste için array; anahtar-değer ilişkisi, örneğin kullanıcı kimliğine göre tek kayıt bulma, için object veya uygun başka bir veri yapısı daha anlaşılır olabilir.

Bir verinin array olup olmadığını kontrol edip sonra dönüştürme yapmak güvenli bir temel yaklaşımdır:

Kod:
function adlariGetir(veri) {
  if (!Array.isArray(veri)) {
    throw new TypeError("Beklenen veri bir array olmalı");
  }

  return veri
    .filter(kayit => kayit && typeof kayit.ad === "string")
    .map(kayit => kayit.ad);
}

console.log(adlariGetir([{ ad: "Deniz" }, { ad: "Ece" }]));

Bu işlev geçerli girdide adları yeni bir array olarak döndürür. Geçersiz girdide hata vermesi, sessizce yanlış sonuç üretmek yerine çağıran kodun veri biçimini düzeltmesi gerektiğini gösterir.

Sık sorulan sorular​


Array ile object arasındaki temel fark nedir?​


Array sıralı ve sayısal indeksli eleman listeleri için kullanılır. Object ise genellikle adlandırılmış özellikleri bir arada tutar; örneğin tek bir kullanıcının ad ve email bilgileri object olabilir.

Bir array kopyalandığında neden asıl dizi de etkilenebilir?​


Diziler referans türüdür. const kopya = asıl yazıldığında yeni dizi oluşmaz; iki değişken aynı diziyi gösterir. Bağımsız, yüzeysel bir kopya için [...asıl] kullanılabilir. İç içe object veya array elemanları varsa bu yöntem onların iç kopyasını oluşturmaz.
 

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