JavaScript yazarken koddan tasarruf etmemizi sağlayacak birçok Array metodu bulunuyor.Bu metodlar işlerimizi gerçekten kolaylaştıracak.Yazımın sonunda birlikte birkaç küçük sorulara bakarak iyice pekiştireceğimizi düşünüyorum.
1- filter() :
For döngülerinde boğulmak yerine filter() metodu bizim için , belirlediğimiz kurala göre tüm diziyi gezer ve kurala uyanlarla bir dizi döndürür.Kurala uygun bir şey yoksa boş dizi geri döndürür.Hemen bir örnek bırakayım.
2-forEach() :
Dizideki her eleman için verilen metodu çalıştırır.Geriye değer döndürmez ve dizimiz boş ise çalışmaz.Indexlerini kullanarak bir örnek bırakayım.
Şimdi hemen ardından forEach e çok benzeyen bir metoda bakalım.
3-map() :
Dizideki her eleman için, parametre olarak verilen fonksiyonu çağırır ve oluşan sonuçlarla da yeni bir dizi oluşturur.forEach() ile farkı ise şu forEach() geriye bir şey döndürmez ama map() geriye bir dizi döndürür.
4-sort() :
Metodu dizi ögelerini sıralayarak, ilgili dizini sıralanmış olarak bize geri döndürür.Örneğin alfabeye göre ayları sıralayalım.
Eğer sayıları sıralamak istersek sort() bize mantıklı bir değer burada döndürmüyor.Bizde arrow function kullanarak çok kısa bir işlemle sıralamamızı yaptırabiliyoruz.
a-b diyerek küçükten büyüğe doğru sıralattık eğer b-a dersek büyükten küçüğe doğru bizim için sıralar.
5-includes() :
Metod bir dizinin belirli bir elemanı içerip içermediğini belirler, içeriyorsa true içermiyorsa false değerini döndürür.
6-join() :
Join , dizi elemanlarını belirlenen ayraç yardımıyla birleştirir. Geriye bir string ifade döner.
+Spread Operatörü (…)
Yazımda spread operatöründen de bahsetmek istiyorum.Çünkü dizilerle uğraşırken inanılmaz kolaylıklar sağlıyor.Spread operatörü ile apply,slice gibi metodlarla uğraşmaktan kurtarır.Örneklere geçelim hemen.
İki diziyi birleştirirken ;
üç nokta koyup dizimizin ismini yazmamız yeterli oldu.
Arrayi kopyalarken slice() kullanmak yerine ;
ve son olarak bahsedeceğim metod ise
7-Reduce():
Method , dizinin her değeri için bir işlev yürütür ve sonunda diziyi tek bir değere düşürür.
Metodun dönüş değeri ilk parametresi olan accumulator parametresinde saklanır.
Benim şuana kadar en çok karşılaştığım array metodlar bunlardı.Yazımı tamamlamadan birkaç tane algoritma sorusu ve cevabını bırakacağım.Bu metodları kullanmasaydık işlemler ne kadar uzun olacaktı bunu daha iyi görelim hep beraber.
Array.diff algoritması
Bizden istenen gönderilen ikinci dizide hangi değer varsa , ilkinden silip bunu geri döndürmek.
arrayDiff([1,2],[1]) == [2]arrayDiff([1,2,2,2,3],[2]) == [1,3]
Filter ve includes metodlarını kullanarak bu algoritmayı çok kısa bir şekilde çözebiliriz.
Sort array by string length algoritması
Bizden istenen verilen bir dizinin içindeki değerleri , karakter sayısına göre küçükten büyüğe sıralamak.
Sıralamak denince aklımıza hemen sort() metodu geldi.Bu algoritmayı yine tek bir satırda çözebiliriz.
İşimizi ne kadar kolaylaştırdığını görebiliriz.
Kaynak:
Algoritmalar : https://www.codewars.com