Bir dizi içerisindeki benzersiz (unique) değerleri almak için JavaScript’in Set()
fonksiyonunu kullanabilirsiniz. İşlem adımları şu şekildedir:
- Dizi içerisindeki benzersiz değerleri tutmak için bir Set nesnesi oluşturun.
- Dizi içerisindeki her elemanı Set nesnesine ekleyin.
- Set nesnesini yeniden bir diziye dönüştürün.
Aşağıdaki kod örneği, yukarıdaki adımları uygular:
const arr = [1,2,3,4,5,6,7,8,9,10,1,2,3,21,25,64,23,10];
const uniqueArr = Array.from(new Set(arr));
console.log(uniqueArr); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 21, 25, 64, 23]
Set()
fonksiyonu, bir dizi içerisindeki yinelenen değerleri filtreler ve benzersiz olanları tutar. Array.from()
fonksiyonu, bir Set nesnesini diziye dönüştürür.
Yukarıdaki örnekte, arr
dizisi içerisindeki benzersiz değerleri uniqueArr
dizisi içerisine atarız. Bu diziyi konsola yazdırarak benzersiz elemanları görüntüleyebilirsiniz.
Örnek 1
forEach()
döngüsü kullanarak da bir dizideki benzersiz (unique) değerleri alabilirsiniz. Aşağıdaki kod örneği, forEach()
döngüsünü kullanarak yukarıdaki dizideki benzersiz değerleri almanızı sağlar.
const arr = [1,2,3,4,5,6,7,8,9,10,1,2,3,21,25,64,23,10];
const uniqueArr = [];
arr.forEach((element) => {
if (!uniqueArr.includes(element)) {
uniqueArr.push(element);
}
});
console.log(uniqueArr); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 21, 25, 64, 23]
Yukarıdaki kodda, forEach()
döngüsü kullanılarak arr
dizisindeki her eleman tek tek kontrol edilir. uniqueArr
dizisi içerisinde elemanın mevcut olup olmadığı kontrol edilir. Eğer eleman uniqueArr
dizisi içerisinde yoksa, push()
metodu kullanılarak dizinin sonuna eklenir.
includes()
metodu, bir dizide belirtilen elemanın olup olmadığını kontrol eder. Eğer eleman dizide varsa true
döndürür, yoksa false
döndürür.
Örnek 2
Yeni dizi oluşturmadan da arr
dizisindeki tekrar eden değerleri kaldırabilirsiniz. Bunun için bir for
döngüsü veya forEach()
döngüsü kullanabilirsiniz.
Aşağıdaki kod örneği, for
döngüsü kullanarak arr
dizisindeki tekrar eden değerleri kaldırır:
const arr = [1,2,3,4,5,6,7,8,9,10,1,2,3,21,25,64,23,10];
for (let i = 0; i < arr.length; i++) {
for (let j = i + 1; j < arr.length; j++) {
if (arr[i] === arr[j]) {
arr.splice(j, 1);
j--;
}
}
}
console.log(arr); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 21, 25, 64, 23]
Yukarıdaki örnekte, iki for
döngüsü kullanılarak arr
dizisindeki her eleman diğer elemanlarla karşılaştırılır. Eğer iki eleman birbirine eşitse, splice()
metodu kullanılarak arr
dizisinden ikinci eleman silinir.
Döngü içerisinde j--
ifadesi kullanılarak, splice()
metodu bir eleman silindiğinde döngü değişkeni j
nin 1 azaltılması gerekir. Aksi halde bir eleman silindiğinde, sonraki elemanlar atlama ihtimali vardır.
Bu yöntemle, arr
dizisi içerisindeki tekrar eden elemanlar silinerek, tekrar eden elemanlar olmayan orijinal diziye güncellenir.
Yorumlar Henüz yorum yapılmamış
Yeni Yorum