GenelJavascriptWeb

JAVASCRIPT ARRAYS CONCAT, JOIN & SORT METODLARI

Merhaba, bu yazıda sizlere JavaScript içerisinde Array kullanımı II. dersi olarak concat, join, sort metotlarından bahsedeceğim. Bu metotların kullanımı ve örneklerini göstereceğim.

İlk olarak metotlara geçmeden önce kullanmak üzere 1 Array oluşturalım. Önceki yazımızda bundan bahsetmiştik.

var arrModels = ["BMW","Mercedes","Audi","Volkswagen"];

1. Array.concat(..items)

Array.concat metodu içerisine parametre olarak birçok eleman alır ve bu elemanları ilgili dizi ile birleştirir ve yeni bir dizi olarak döndürür. İlk durumdaki dizinin içeriği değişmez. Bir örnekle gösterelim.

//Mevcut arrModels dizimizi concat ile yeni elemanlarla birleştiriyoruz ve yeni dizi oluşturuyoruz.
var arrNewModels = arrModels.concat("Nissan","Skoda")
Son durumda arrModels : 4 eleman, arrNewModels : 6 eleman şeklindedir.

Görüldüğü gibi concat metodu istenen elemanları mevcut Array ile birleştirerek yeni bir Array oluşturur. Burada concat içerisine verileri tek tek yazmak yerine bir Array olarak ta verebiliriz.

var arrExtraModels = ["Hyundai","Suzuki","Honda"];
var arrNewModels = arrNewModels.concat(arrExtraModels);
2 diziyi birleştirdik ve ilk dizimize atadık. Bu sayede dizi değişmiş oldu.

2. Array.join(?seperator)

Array.join metodu, dizi içerisindeki tüm elemanları tek bir string verisi olarak yazdırmaya yaramaktadır. Elemanları diziden çıkartmaz, yeni bir string verisi oluşturur. Parametre olarak ise separator alır. Separator zorunlu değildir. Verilmediği takdirde tüm veriler virgül ile birleşik olarak string oluşturulur.

Bu metot için örnek Array verimiz, ilk oluşturduğumuz arrModels dizisi olacaktır.

//Separatorsüz
var separatorFalseText = arrModels.join();
//Separatorlü
var separatorTrueText = arrModels.join("-");
Separatorlü ve Separatorsüz olarak 2 string verisi de oluşturulmuştur.

Burada gördüğümüz gibi String istediğimiz şekilde oluşturuluyor.

3. Array.sort(?sortFunc)

Array.sort, metodu içerisindeki verileri sıralamaya yaramaktadır. Parametre kullanılmadığında küçükten büyüğe sıralamaktadır. Parametre olarak ise sıralama yöntemini belirleyebileceğimiz bir fonksiyon almaktadır. Ayrıca sıralama yapılan dizi kendi içerisinde bu işlemi yapar, yani elemanların indisleri değişmiş olur. 2 örneği de inceleyelim, Array olarak concat edilmiş veri sayısı daha fazla olan, son dizimizi kullanalım ‘arrNewModels’.

//concat edilmiş arrNewModels verileri;
arrNewModels = ["BMW", "Mercedes", "Audi", "Volkswagen", "Nissan", "Skoda", "Hyundai", "Suzuki", "Honda"];
arrNewModels.sort();
Görüldüğü gibi, sıralama öncesi ve sonrası verilerin düzeni şekildeki gibidir.
  • sortFunc kullanımı;

Sıralama özel fonksiyonunun bir koşulu olsun. Gelen elemanları elemanın uzunluğuna göre sıralayalım. Yani BMW, Audi, Honda, Skoda…. şeklinde sıralanmasını bekliyoruz. Sıralama metodu içerisine 2 eleman alır, bu 2 elemanı kendi içerisinde kıyaslar. Eğer bir eleman diğerinden büyükse 1, küçükse -1, eşitse 0 değeri döndürmeli.

//2 li olarak elemanları kıyaslıyoruz, ve durumlarını döndürüyoruz.
var mySortFunc = function(a, b){
  if (a.length < b.length) { return -1; }
  if (a.length > b.length) { return 1; }
  if (a.length == b.length) { return 0; }
}
//Metodumuzun şartlarına göre sıralayalım.
arrNewModels.sort(mySortFunc);
Görüldüğü gibi parametresiz sıralama sonrasında oluşan dizimizi tekrar metodumuzun şartlarına göre sıraladık. Oluşan sıralama beklediğimiz şekilde oldu.

JavaScript ile birçok Array dizisi kullanıma sunulmuştur. Burada gördüklerimiz sadece birkaçı, ilerleyen yazılarımızda diğer metodları da burada paylaşmaya çalışacağız. İyi çalışmalar.

Oğuzhan ÖZDEMİR

19 Ocak 1991 Bursa doğumlu Bilgisayar Mühendisiyim. Codeigniter, Kotlin, Android, MySQL ve iOS uygulamalar geliştiriyorum. Web kısmında CSS, HTML, JavaScript, jQuery konularına hakimim. Mayıs 2017 tarihinde Maltepe/İstanbul oradan da Çorlu /Tekirdağ'a giderek askerlik görevimi tamamladım. 2018 Mayıs ayında Bursa'da Durmazlar Makina Sanayi ve Tic. A.Ş. firmasında Bilgi Teknolojileri Uzman Yardımcısı olarak işe başladım. İletişim: ogzhnozdmr@gmail.com

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.