JavaScript Kümesi ve Zayıf Kümesi

Bu eğiticide, örnekler yardımıyla JavaScript Setleri ve WeakSets hakkında bilgi edineceksiniz.

JavaScript ES6 iki yeni veri yapısı sunmuştur , yani Setve WeakSet.

Küme, sayılar, dizeler, nesneler vb. Gibi birden çok öğeyi saklamamıza izin veren bir diziye benzer. Bununla birlikte, bir dizinin aksine, bir küme yinelenen değerler içeremez.

JavaScript Seti Oluşturun

Bir oluşturmak için yapıcıyı Setkullanmanız gerekir new Set(). Örneğin,

 // create Set const set1 = new Set(); // an empty set console.log(set1); // Set () // Set with multiple types of value const set2 = new Set((1, 'hello', (count : true))); console.log(set2); // Set (1, "hello", (count: true))

Bir Setnesneye yinelenen değerler iletildiğinde , yinelenen değerler hariç tutulur.

 // Set with duplicate values const set3 = new Set((1, 1, 2, 2)); console.log(set3); // Set (1, 2)

Küme Öğelerine Erişim

Yöntemi Setkullanarak öğelere erişebilir ve values()yöntemi Setkullanarak içinde bir öğe olup olmadığını kontrol edebilirsiniz has(). Örneğin,

 const set1 = new Set((1, 2, 3)); // access the elements of a Set console.log(set1.values()); // Set Iterator (1, 2, 3)

has()Öğenin bir Kümede olup olmadığını kontrol etmek için yöntemi kullanabilirsiniz . Örneğin,

 const set1 = new Set((1, 2, 3)); // check if an element is in Set console.log(set1.has(1));

Yeni Öğeler Ekleme

add()Yöntemi kullanarak bir Set'e öğeler ekleyebilirsiniz . Örneğin,

 const set = new Set((1, 2)); console.log(set.values()); // adding new elements set.add(3); console.log(set.values()); // adding duplicate elements // does not add to Set set.add(1); console.log(set.values());

Çıktı

 Set Yineleyici (1, 2) Set Yineleyici (1, 2, 3) Set Yineleyici (1, 2, 3)

Elemanların Kaldırılması

Bir Setten öğeleri kaldırmak için clear()ve delete()yöntemini kullanabilirsiniz.

delete()Yöntem, belirli bir öğeyi kaldırır Set. Örneğin,

 const set = new Set((1, 2, 3)); console.log(set.values()); // Set Iterator (1, 2, 3) // removing a particular element set.delete(2); console.log(set.values()); // Set Iterator (1, 3)

clear()Yöntem, tüm öğeleri kaldırır Set. Örneğin,

 const set = new Set((1, 2, 3)); console.log(set.values()); // Set Iterator (1, 2, 3) // remove all elements of Set set.clear(); console.log(set.values()); // Set Iterator ()

Yineleme Setleri

For… of döngüsünü veya forEach () yöntemini kullanarak Set öğeleri arasında yineleme yapabilirsiniz. Öğelere, ekleme sırasından erişilir. Örneğin,

 const set = new Set((1, 2, 3)); // looping through Set for (let i of set) ( console.log(i); )

Çıktı

 1 2 3

JavaScript WeakSet

WeakSet, Kümeye benzer. Ancak WeakSet yalnızca nesneleri içerebilirken, bir Küme dizeler, sayılar, nesneler vb. Gibi herhangi bir veri türünü içerebilir. Örneğin,

 const weakSet = new WeakSet(); console.log(weakSet); // WeakSet () let obj = ( message: 'Hi', sendMessage: true ) // adding object (element) to WeakSet weakSet.add(obj); console.log(weakSet); // WeakSet ((message: "Hi", sendMessage: true))

Nesnelerin yanı sıra başka veri türleri eklemeye çalıştığınızda, WeakSet bir hata atar. Örneğin,

 // trying to add string to WeakSet weakSet.add('hello'); // throws error // TypeError: Attempted to add a non-object key to a WeakSet console.log(weakSet);

WeakSet Yöntemleri

WeakSets yöntemleri var add(), delete()ve has(). Örneğin,

 const weakSet = new WeakSet(); console.log(weakSet); // WeakSet () const obj = (a:1); // add to a weakSet weakSet.add(obj); console.log(weakSet); // WeakSet ((a: 1)) // check if an element is in Set console.log(weakSet.has(obj)); // true // delete elements weakSet.delete(obj); console.log(weakSet); // WeakSet ()

WeakSets yinelenemez

Setlerden farklı olarak WeakSets yinelenemez. Örneğin,

 const weakSet = new WeakSet((a:1)); // looping through WeakSet for (let i of weakSet) ( // TypeError console.log(i); )

Matematiksel Küme İşlemleri

JavaScript'te Set, birleşim, kesişim, fark vb. Matematiksel işlemleri gerçekleştirmek için yerleşik yöntemler sağlamaz. Bununla birlikte, bu işlemleri gerçekleştirmek için programlar oluşturabiliriz.

Örnek: Birleştirme İşlemini Ayarlama

 // perform union operation // contain elements of both sets function union(a, b) ( let unionSet = new Set(a); for (let i of b) ( unionSet.add(i); ) return unionSet ) // two sets of fruits let setA = new Set(('apple', 'mango', 'orange')); let setB = new Set(('grapes', 'apple', 'banana')); let result = union(setA, setB); console.log(result);

Çıktı

 Set ("elma", "mango", "portakal", "üzüm", "muz")

Örnek: Kavşak İşlemini Ayarlama

 // perform intersection operation // elements of set a that are also in set b function intersection(setA, setB) ( let intersectionSet = new Set(); for (let i of setB) ( if (setA.has(i)) ( intersectionSet.add(i); ) ) return intersectionSet; ) // two sets of fruits let setA = new Set(('apple', 'mango', 'orange')); let setB = new Set(('grapes', 'apple', 'banana')); let result = intersection(setA, setB); console.log(result);

Çıktı

 Ayarla ("elma")

Örnek: Fark İşlemini Ayarlama

 // perform difference operation // elements of set a that are not in set b function difference(setA, setB) ( let differenceSet = new Set(setA) for (let i of setB) ( differenceSet.delete(i) ) return differenceSet ) // two sets of fruits let setA = new Set(('apple', 'mango', 'orange')); let setB = new Set(('grapes', 'apple', 'banana')); let result = difference(setA, setB); console.log(result);

Çıktı

 Set ("mango", "turuncu")

Örnek: Alt Küme İşlemini Ayarlama

 // perform subset operation // true if all elements of set b is in set a function subset(setA, setB) ( for (let i of setB) ( if (!setA.has(i)) ( return false ) ) return true ) // two sets of fruits let setA = new Set(('apple', 'mango', 'orange')); let setB = new Set(('apple', 'orange')); let result = subset(setA, setB); console.log(result);

Çıktı

 doğru

JavaScript Setsve ES6'daWeakSets tanıtıldı . Bazı tarayıcılar bunların kullanımını desteklemeyebilir. Daha fazla bilgi edinmek için JavaScript Kümeleri desteğini ve JavaScript WeakSets desteğini ziyaret edin.

Ilginç makaleler...