Onur Dayıbaşı

CV
none

Array.prototype.fn ?

JS’de ES6 ve Sonrasında Gelen Yardımcı Fonksiyonlar

Array.concat() Nedir ?

Array birleştirmek isterseniz concat ile bu işlemi yapabiliriz ama spread ile bu işlem oldukça kolay ve okunaklı bir şekilde yapılabilmektedir.

1const arr=[1,2]; console.log(arr.concat([3,4],[5])) //[1,2,3,4,5]
2console.log([...[1,2],...[3,4],...[5]]);

JS Array.forEach() Nedir ?

Array, Map ve Set veri yapılarında forEach gibi tüm elemanların üzerinden geçebilen fonksiyona sahiptir. Bunun dezavantajı continue/break yapabilme imkanı bulunmamaktadır.

1const numberArray=[1,2,2,4,5];
2const colorSet=new Set(["red","green","blue"]);
3const colorMap=new Map([['red',1],['green',2]])
4numberArray.forEach(el=>console.log(el))
5colorSet.forEach(el=>console.log(el))
6colorMap.forEach((value,key, map)=>{console.log(`${key}:${value}`)})

Fonksiyonel Programla(functional programming) High Order Functions yöntemi ile gerçekleştirilen Array kullanılan forEach benzeri diğer fonksiyonlardan da bahsetmek istiyorum. → map, filter, find, findIndex, reduce, every, some, vb fonksiyonlar döngüler ile belli amaç doğrultusunda birleştirilmiş geliştiricilere sağlanmış hazır fonksiyonlardır.

  • forEach: tüm array elemanlarını dön
  • filter: tüm array elemanlarını dön ve koşula göre filtreleme yap
  • map: tüm array elemanlarını başka bir array olarak maple.
  • find: array içerisinde ilgilendiğin elemanı bul.
  • reduce: array tek bir çıktının oluşmasını sağlamaktır.
  • every: verilen tüm elemanların testi geçip geçmediği
  • some: ise verilen elemanlardan bazılarının testi geçip geçmediği

Array.push() Nedir ?

Array sonuna istediğimiz elemanları eklemimizi sağlar. Burda tek bir eleman verebildiğimiz gibi birden fazla elemanda verebiliriz. Burdaki apply fonksiyonu yerine spread kullanabilirsiniz.

1const arr=[2,3]; arr.push(4,5) console.log(arr);//[2,3,4,5]
2const arr=[2,3]; arr.push.apply([4,5]) console.log(arr);
3const arr=[2,3]; arr.push([...4,5]) console.log(arr);

Array.splice() Nedir ?

Array ortasına , sonuna ve başına başka bir array eklemek istersek burada spread çok avantajlı. splice ile yapmaya göre daha okunaklı bir hale gelmiş durumda.

1const arr=[1,2]; arr.splice(1,0,4,5); console.log(arr)//[1,4,5,3]
2const arr=[1,...[4,5],2]; console.log(arr)

Array.prototype.includes()

Array includes metodu olmadan önce biz çoğu yerde Array indexOf metodunu kullanıp değeri -1 den fazla ise bu değeri içeriyordur diyorduk. Ama baktığımızda indexOf metodunun amacı farklı. Kaçıncı eleman olduğunu istemiyoruz istediğimiz array bu elemanı içerip içermediği

1const arr=['red','green','blue'];
2console.log(arr.includes('green'));

Aynı durumu String türünde de görebiliriz

1str.includes('substring') gives true/false
2str.indexOf('substring') !== -1 gives position check -1
3str.match(/substring/g)> 0 gives count or repeat
4(new RegExp('substring')).test(str)

Array.prototype.(flat, flatMap)

flat() çok boyutlu array yapılarını tek boyutlu hale dönüştürür.

1const a0=['AA', ['BB', 'CC']].flat(); console.log(a0);
2//['AA', 'BB','CC']
3const a1=['AA', ['BB', ['CC']]].flat(2); console.log(a1);
4//['AA', 'BB','CC']
5const a2=['AA', ['BB', ['CC', ['DD']]]].flat(Infinity); console.log(a2); //['AA', 'BB','CC']

flatMap() ise map donen array değerini tek boyutlu bir hale getirir.

1const b0=['Aa bb', 'cc dd'].map(words => words.split(' ')); console.log(b0); [[AA bb],[cc dd]]
2const b1=['Aa bb', 'cc dd'].flatMap(words => words.split(' ')); console.log(b1); [AA, bb, cc, dd]

Referanslar