Bir dizi içerisindeki benzersiz (unique) değerleri almak için JavaScript’in Set() fonksiyonunu kullanabilirsiniz. İşlem adımları şu şekildedir:

 

  1. Dizi içerisindeki benzersiz değerleri tutmak için bir Set nesnesi oluşturun.
  2. Dizi içerisindeki her elemanı Set nesnesine ekleyin.
  3. Set nesnesini yeniden bir diziye dönüştürün.
  4.  

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 jnin 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.