In this article, we will be discussing the Set object provided by ES6. A set is a collection of items that are unique i.e. no element can be repeated. Set in ES6 are ordered: elements of the set can be iterated in the insertion order. The set can store any type of value whether primitive or objects.
Syntax:
new Set([it]);
Parameter:
- it: It is an iterable object whose all elements are added to the new set created, If the parameter is not specified or null is passed then a new set created is empty.
Return Value:
A new set object.
Example: This example shows the implementation of a JavaScript set.
Javascript
let set1 = new Set([ "sumit" , "sumit" , "amit" , "anil" , "anish" ]);
let set2 = new Set( "fooooooood" );
let set3 = new Set([10, 20, 30, 30, 40, 40]);
let set4 = new Set();
|
Properties:
Set.size – It returns the number of elements in the Set.
Methods of Set:
It adds the new element with a specified value at the end of the Set object.
Syntax:
set1.add(val);
Parameter:
- val: It is a value to be added to the set.
Return value:
The set object
Example: In this example, we are adding values into the set by using add() method.
Javascript
let set1 = new Set();
set1.add(10);
set1.add(20);
set1.add(30).add(40).add(50);
console.log(set1);
|
Output:
Set(5) {10, 20, 30, 40, 50}
It deletes an element with the specified value from the Set object.
Syntax:
set1.delete(val);
Parameter:
- val: It is a value to be deleted from the set.
Return value:
true if the value is successfully deleted from the set else returns false.
Example: In this example, we are deleting the values into the set by using delete() method.
Javascript
let set1 = new Set( "foooodiiiieee" );
console.log(set1. delete ( 'e' ));
console.log(set1);
console.log(set1. delete ( 'g' ));
|
Output:
true
Set(4) {'f', 'o', 'd', 'i'}
false
It removes all the element from the set.
Syntax:
set1.clear();
Parameter:
This method does not take any parameter
Return value:
Undefined
Example: In this example, we are clearing the values into the set by using clear() method.
Javascript
let set2 = new Set([10, 20, 30, 40, 50]);
console.log(set2);
set2.clear()
console.log(set2);
|
Output:
Set(5) {10, 20, 30, 40, 50}
Set(0) {size: 0}
It returns an iterator object which contains an array having the entries of the set, in the insertion order.
Syntax:
set1.entries();
Parameter:
This method does not take any parameter
Return value:
It returns an iterator object that contains an array of [value, value] for every element of the set, in the insertion order.
Example: In this example, we are using enteries() method.
Javascript
let set1 = new Set();
set1.add(50);
set1.add(30);
set1.add(40);
set1.add(20);
set1.add(10);
let getEntriesArry = set1.entries();
console.log(getEntriesArry.next().value);
console.log(getEntriesArry.next().value);
console.log(getEntriesArry.next().value);
|
Output:
(2) [50, 50]
(2) [30, 30]
(2) [40, 40]
It returns true if the specified value is present in the Set object.
Syntax:
set1.has(val);
Parameter:
- val: The value to be searched in the Set
Return value:
True if the value is present else it returns false.
Example: In this example, we are checking whether the value is present in the set by using has() method.
Javascript
let set1 = new Set();
set1.add(50);
set1.add(30);
console.log(set1.has(50));
console.log(set1.has(10));
|
Output:
true
false
It returns all the values from the Set in the same insertion order.
Syntax:
set1.values();
Parameter:
This method does not take any parameter
Return value:
An iterator object that contains all the values of the set in the same order as they are inserted.
It also returns all the values from the Set in the insertion order.
Note: It is similar to the values() in the case of Sets
Syntax:
set1.keys();
Parameter:
This method does not take any parameter
Return Value:
An iterator object that contains all the values of the set in the same order as they are inserted.
Example: In this example, we are printing all the values of the set by using keys() method.
Javascript
let set1 = new Set();
set1.add(50);
set1.add(30);
set1.add(40);
set1.add( "Geeks" );
set1.add( "GFG" );
let getValues = set1.values();
console.log(getValues);
let getKeys = set1.keys();
console.log(getKeys);
|
Output:
SetIterator {50, 30, 40, 'Geeks', 'GFG'}
SetIterator {50, 30, 40, 'Geeks', 'GFG'}
It executes the given function once for every element in the Set, in the insertion order.
Syntax:
set1.forEach(callback[,thisargument]);
Parameter:
- callback – It is a function that is to be executed for each element of the Set.
- The callback function is provided with three parameters as follows:
- the element key
- the element value
- the Set object to be traversed
- thisargument – Value to be used as this when executing the callback.
Return value:
Undefined
It returns a Set iterator function which is values() function by default.
Syntax:
set1[Symbol.iterator]();
Parameter:
This method does not take any parameter
Return value:
A Set iterator function and it is values() by default.
Example: In this example, we are iterating the values from the set.
Javascript
let set1 = new Set([ "sumit" , "sumit" , "amit" , "anish" ]);
let getit = set1[Symbol.iterator]();
console.log(getit.next());
console.log(getit.next());
console.log(getit.next());
console.log(getit.next());
|
Output:
{value: 'sumit', done: false}
{value: 'amit', done: false}
{value: 'anish', done: false}
{value: undefined, done: true}
Set Operations
JavaScript subSet() Method: It returns true if Set A is a subset of Set B. A Set A is said to be a subset of Set B, if all the elements of Set A is also present in Set B. Now lets implement and use the subset function.
Example: In this example, we are checking whether the given subset is present in the given set or not and returning the result according to it.
Javascript
Set.prototype.subSet = function (otherSet)
{
if ( this .size > otherSet.size)
return false ;
else
{
for (let elem of this )
{
if (!otherSet.has(elem))
return false ;
}
return true ;
}
}
let setA = new Set([10, 20, 30]);
let setB = new Set([50, 60, 10, 20, 30, 40]);
let setC = new Set([10, 30, 40, 50]);
console.log(setA.subSet(setB));
console.log(setA.subSet(setC));
console.log(setC.subSet(setB));
|
Output:
true
false
true
JavaScript union() Method: It returns a Set which consists of the union of Set A and Set B. A Set is said to be a union of two sets, if it contains all elements of Set A as well as all elements of Set B, but it doesn’t contain duplicate elements.
If an element is present in both Set A and Set B then the union of Set A and B will contain a single copy of the element. Let’s implement and use the union function
Example: In this example, we are merging the two sets.
Javascript
Set.prototype.union = function (otherSet)
{
let unionSet = new Set();
for (let elem of this )
{
unionSet.add(elem);
}
for (let elem of otherSet)
unionSet.add(elem);
return unionSet;
}
let set1 = new Set([10, 20, 30, 40, 50]);
let set2 = new Set([40, 50, 60, 70, 80]);
let unionSet = set1.union(set2);
console.log(unionSet.values());
|
Output:
SetIterator {10, 20, 30, 40, 50, …}
JavaScript intersection() Method: It returns the intersection of Set A and Set B. A Set is said to be the intersection of Set A and B if contains an element which is present both in Set A and Set B. Let’s implement and use the intersection function
Example: In this example, we are finding the insersection of two sets.
Javascript
Set.prototype.intersection = function (otherSet)
{
let intersectionSet = new Set();
for (let elem of otherSet)
{
if ( this .has(elem))
intersectionSet.add(elem);
}
return intersectionSet;
}
let set1 = new Set([10, 20, 30, 40, 50]);
let set2 = new Set([40, 50, 60, 70, 80]);
let intersectionSet = set1.intersection(set2);
console.log(intersectionSet.values());
|
Output:
SetIterator {40, 50}
JavaScript difference() Method: It returns the Set which contains the difference between Set A and Set B. A Set is said to be a difference between Set A and B if it contains set of elements e which are present in Set A but not in Set B. Let’s implement and use the difference function
Example: In this example, we are finding the difference of two sets.
Javascript
Set.prototype.difference = function (otherSet)
{
let differenceSet = new Set();
for (let elem of this )
{
if (!otherSet.has(elem))
differenceSet.add(elem);
}
return differenceSet;
}
let set1 = new Set([10, 20, 30, 40, 50]);
let set2 = new Set([40, 50, 60, 70, 80]);
let differenceSet = set1.difference(set2);
console.log(differenceSet);
|
Output:
Set(3) {10, 20, 30}
JavaScript is best known for web page development but it is also used in a variety of non-browser environments. You can learn JavaScript from the ground up by following this JavaScript Tutorial and JavaScript Examples.
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...