#6 ES6 Set Kullanımı

Bir önceki yazımızda ES6 ile gelen Map objesini incelemiştik. Şimdi ise bir başka collection türü olan Set kavramını inceleyelim. Map objeleri ile key/value değerlerini tutuyorduk, set objeleri ise ilkel veya referans tipli olsun tekil (unique) değerler saklamamızı sağlayan nesnedir.

setObj adında bir set objesi oluşturalım ve üzerinde ne gibi işlemler yapabiliriz inceleyelim:

1
2
3
4
5
6
7
8
9
10
11
12
const setObj = new Set();
setObj.add(2);
setObj.add("dört");
setObj.add(66);
setObj.add([2,4,6]);
setObj.add({name:"Güner", surname:"Bilgili"});
setObj.add({name:"Güner", surname:"Bilgili"});
setObj.add(66);

console.log(setObj);
//Console: Set { 2, 'dört', 66, [ 2, 4, 6 ], { name: 'Güner', surname: 'Bilgili' },{ name: 'Güner', surname: 'Bilgili' } }
////İki kere 66 eklemiştik, fakat çıktıda 1 kere yazdı?

Çıktımızda dikkat ettiysek 66 değerini iki kere eklememize karşın objemize bir kere eklendi. Set nesnesi başta da belirttiğimiz üzere tekil değerler tutmamızı sağlar ve aynı değeri sadece bir kere tutar. Peki madem öyle aynı değerlere sahip “{name:”Güner”, surname:”Bilgili”}” objesini iki kere nasıl ekleyebildik diye sorabilirsiniz. Objeler bellekte ilkel değişkenler gibi değerleri ile değil referans adresleri ile tutulurlar. Yani biz içerisindeki değerleri aynı olsa da bir başka obje tanımladığımız zaman referansı diğerinden farklı olacağından iki farklı nesne gibi set objemize eklenebilecektir.

Map objesinde olduğu gibi bir değişkeni barındırıp barındırmadığını sorgulamak istersek yine has() metodunu kullanırız:

1
2
3
4
console.log(setObj.has("dört"));
//Console: true
console.log(setObj.has(75));
//Console: false

Eleman sayısı için yine size özelliğinden yararlanılır:

1
2
3
const elemanSayisi = setObj.size;
console.log(elemanSayisi)
// Console: 6

Eleman silmek istediğimiz zaman yine delete() metodunu kullanırız:

1
setObj.delete("dört")

Oluşturduğumuz set objesini bir diziye çevirip, dizi metotlarından yararlanmak isteyebiliriz. Bunun için Array sınıfının from() metoduna ilgili set objemizi vermemiz yeterli olacaktır:

1
2
3
const array = Array.from(setObj);
console.log(array);
//Console: [ 2,'dört',66,[ 2, 4, 6 ],{ name: 'Güner', surname: 'Bilgili' },{ name: 'Güner', surname: 'Bilgili']

Daha fazlası için: - Set - JavaScript | MDN

Android Programlama: Resource Kullanımı #5 ES6 Map Kullanımı

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×