A Set in TypeScript is a bunch of unique values. It is part of the ECMAScript 2015 (ES6) standard and is implemented as a native object in JavaScript.
Unlike arrays, sets do not allow duplicate elements, making them useful for storing collections of unique items. TypeScript provides strong typing for sets, ensuring type safety and autocompletion in the development environment.
Creating a New Set
You can create a new set by using the Set constructor.
Syntax
let mySet = new Set<Type>();
Example: Creating new set using the numbers
JavaScript
let numberSet = new Set<number>();
numberSet.add(1);
numberSet.add(2);
numberSet.add(3);
console.log(numberSet);
Output
Set { 1, 2, 3 }
Adding Elements to a Set
Elements can be added to a set using the add method.
Syntax
mySet.add(value);
Example: Adding new fruits to the set.
JavaScript
let stringSet = new Set<string>();
stringSet.add("apple");
stringSet.add("banana");
stringSet.add("orange");
console.log(stringSet);
Output
Set { 'apple', 'banana', 'orange' }
Checking if an Element Exists in a Set
It has method checks if an element exists in the set.
Syntax
mySet.has(value);
Example: Checking if the element exist or not.
JavaScript
let fruitSet = new Set<string>(["apple", "banana", "orange"]);
console.log(fruitSet.has("apple"));
console.log(fruitSet.has("grape"));
Output
true
false
Removing Elements from a Set
Elements can be removed from a set using the delete method.
Syntax
mySet.delete(value);
Example: Removing an element from the set.
JavaScript
let colorSet = new Set<string>(["red", "green", "blue"]);
colorSet.delete("green");
console.log(colorSet);
Output
Set { 'red', 'blue' }
Iterating Over a Set
You can iterate over a set using for...of or forEach.
Syntax
for (let item of mySet) {
console.log(item);
}
mySet.forEach((item) => {
console.log(item);
});
Example: Iterating over set and printing each element.
JavaScript
let numSet = new Set<number>([1, 2, 3, 4, 5]);
for (let num of numSet) {
console.log(num);
}
numSet.forEach((num) => {
console.log(num);
});
Output
1
2
3
4
5
1
2
3
4
5
Converting a Set to an Array
A set can be converted to an array using the spread operator or the Array.from method.
Syntax
let myArray = [...mySet];
let myArray2 = Array.from(mySet);
Example: In this example we are converting a set to array.
JavaScript
let mySet = new Set<number>([1, 2, 3]);
let myArray = [...mySet];
console.log(myArray);
let myArray2 = Array.from(mySet);
console.log(myArray2);
Output
[1, 2, 3]
[1, 2, 3]
Sets can be used to perform mathematical operations like union, intersection, and difference.
Syntax
let union = new Set([...set1, ...set2]);
let intersection = new Set([...set1].filter(x => set2.has(x)));
let difference = new Set([...set1].filter(x => !set2.has(x)));
Example: Performing set operation union, intersection and difference.
JavaScript
let set1 = new Set<number>([1, 2, 3, 4]);
let set2 = new Set<number>([3, 4, 5, 6]);
let union = new Set<number>([...set1, ...set2]);
console.log(union);
let intersection = new Set<number>([...set1].filter(x => set2.has(x)));
console.log(intersection);
let difference = new Set<number>([...set1].filter(x => !set2.has(x)));
console.log(difference);
Output
Set { 1, 2, 3, 4, 5, 6 }
Set { 3, 4 }
Set { 1, 2 }
Benefits of Using Set
- Uniqueness: A
Set
automatically ensures that all elements are unique. This is particularly useful when you need to enforce uniqueness in your data, such as in user identifiers, tags, or any collection where duplicates are not allowed. - Efficient Lookups: The
has
method of a Set
provides an efficient way to check if an element is present in the collection. This can be much faster than using an array, especially for large datasets. - Simplified Operations: With methods like
add
, delete
, and clear
, a Set
offers a simple and readable way to manage collections. Operations that would require complex logic with arrays can often be done more easily with a Set
. - Improved Performance: For certain operations, such as checking for the presence of an element or removing duplicates,
Set
can offer better performance compared to arrays. This is because Set
uses a more efficient data structure internally.
Similar Reads
Data types in TypeScript In TypeScript, a data type defines the kind of values a variable can hold, ensuring type safety and enhancing code clarity.Primitive Types: Basic types like number, string, boolean, null, undefined, and symbol.Object Types: Complex structures including arrays, classes, interfaces, and functions.Prim
3 min read
TypeScript Custom Type Guards TypeScript boasts a powerful type system, which helps the developers catch errors at compile time and write more resilient code. Sometimes you would need to work with complex types or dynamically typed data where the type information might not be readily available. In situations like these, TypeScri
7 min read
Typescript Generic Type Array A generic type array is an array that is defined using the generic type in TypeScript. A generic type can be defined between the angled brackets(<>). Syntax:// Syntax for generic type arraylet myArray: Array<Type>;Example 1: Creating a simple generic type array of number type in Typescri
1 min read
Swift - Sets A set is a collection of unique elements. By unique, we mean no two elements in a set can be equal. Unlike sets in C++, elements of a set in Swift are not arranged in any particular order. Internally, A set in Swift uses a hash table to store elements in the set. Let us consider an example, we want
15+ min read
TypeScript Defining a Union Type In this article, we are going to learn about Defining a Union Type in Typescript. TypeScript is a popular programming language used for building scalable and robust applications. In TypeScript, a union type allows a variable to have one of several possible types. You can define a union type by using
3 min read