JavaScript Array Methods

İsa Gül
3 min readNov 17, 2019

Bu yazıda sıkça kullanılan ve bir hayli kullanışlı olan yardımcı array metotlardan bazılarının nasıl kullanıldığından ve birbirlerine göre benzerlik ve farklarından bahsedeceğim.

some() vs every()

Her iki metot da true ya da false olarak boolean tipinde bir değer döndürür. Array.some() metotu parametre olarak bir fonksiyon alır. Bu fonksiyonun içerisine yazılan şartı dizinin içerisindeki herhangi bir elemanın sağlaması durumunda true, sağlamaması durumunda false olarak döndürür.

Array.every() metotu da bir fonksiyonu parametre olarak alır ve içerisine bir şart yazılır ancak array.some() metotunun tam tersine arrayin içerisinde bütün elemanların bu şartı sağlaması beklenir. Sağlaması durumunda true, sağlamaması durumunda false döndürür. Bir kaç örnekle anlattıklarımızı koda dökelim.

filter() vs find()

Her iki metot da bir dizinin içerisinden istediğimiz şarta veya şartlara uyan elemanları elde etmek istediğimizde kullanılır. Array.filter() metotu parametre olarak fonksiyon alır ve bu fonksiyonun içerisine yazılan şartı dizinin bütün elemanlarına uygular sonuç olarak şarta uyan elemanları yeni bir array olarak döndürür.

Array.find() metotu, array.filter() metotunun aksine bir array değil tek bir elemanı sonuç olarak döndürür. Array.find() metotu da parametre olarak fonksiyon alır ve fonksiyonun içerisindeki şartı dizinin ilk elemanından başlayarak sırayla her bir elemana uygular. Dizinin içerisindeki elemanlardan şartı sağlayan ilk elemanı sonuç olarak döndürür. Sonucun tipi, dizinin içerisindeki şartı sağlayan elemanın tipi neyse odur. Ayrıca helper metotların her ikisi de original arrayi değiştirmez. Aşağıdaki örnekle farkı incelemeye çalışalım.

slice() vs splice()

Bir dizinin içerisindeki elemanları belirli bir kısmını silmek için kullanılan .slice() ve .splice() metotlarından bahsedeceğim.

.slice() metotu parametre olarak başlangıç ve bitiş indeksi olmak üzere iki parametre alır. Başlangıç indeksinden başlayarak bitiş indeksine kadar olan bütün elemanları siler ve yeni bir array oluşturur. Bitiş indeksi ise silinen elemanlara dahil değildir. Ayrıca .slice() metotu original arrayi de değiştirmez.

Eğer tek bir değer parametre olarak yazılırsa bu başlangıç indeksi olarak kabul edilir ve o indeksten başlayarak dizinin geri kalanı silinir. Aşağıdaki örneklerle konuyu anlamaya çalışalım.

Ek olarak .slice() metotu array-like objects denilen yani sadece indekslenmiş ve belli bir uzunluğu olan, içerisinde gezinmek için herhangi bir .map(), .reduce() gibi metotları kullanamadığımız dom’ dan getElementsByClassName() veya querySelectorAll() vb. kullanarak elde edilebilen NodeList tipindeki arrayi gerçek bir arraye dönüştürmek için de kullanılır. Aşağıdaki örnekte arrLikeObjects değişkenini .slice() metotu ile gerçek bir arraye dönüştürerek, üzerinde array helper metotlarını kullanabileceğimiz bir hale getirdik. Bu dönüşüm işleminin tabii ki birçok yolu mevcut.

let arrLikeObjects = document.querySelectorAll("p");
let realArray = [].slice.call(arrLikeObjects);

.splice() metotunun en önemli ve unutulmaması gereken özelliği .slice()’ tan farklı olarak original arrayi değiştirmesidir. .splice() metotu ile bir array’ e hem ekleme hem de silme işlemi yapılabilir fakat ben .slice() metotu ile karşılaştırdığım için sadece silme işleminden bahsedeceğim.

.splice() metotu sonuç olarak yeni bir array döndürür ve iki parametre alır. Bunlardan birincisi başlangıç indeksi iken ikinci indeks silinecek eleman sayısını gösterir. Eğer parametre olarak tek bir sayı verilirse bu, o indeksten sonraki bütün elemanları silerek yeni bir array oluştur demektir. Eğer başlangıç indeksi pozitif bir sayıysa dizinin başından, eğer negatif bir sayıysa dizinin sonundan silmeye başlar. Aşağıdaki örneklerle .splice() metotu silme işlemlerini anlamaya çalışalım.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

No responses yet

Write a response