Let's Talk About Sets Baby...

🎶 Let's talk about sets... 🎶

So if you read my blog post Data: Types vs. Structures, you might recall me talking about a data structure known as a Set. I was doing a code challenge this last week and found sets to be incredibly helpful in finding an efficient solution, so I decided to take a minute this week to 🎵talk about sets (baby)🎵.

Sets (or set objects) are a collection of values and, as I mentioned in my aforementioned previous post, the values in a set are unique (meaning they can only occur once). This can prove super helpful for finding out if something belongs to a set of values or if you need to figure out how many unique values exist in a a given set of data.

So now that we've established what sets are, let's talk a little bit about how to use them:

First of all, how do we create a set? Well, to create a new set we say:

new Set()

and if we want to add an argument, we can either add data directly:

let triadSet = new Set([1, 3, 5])
// the Set now looks like this: [1, 3, 5]

or we can convert existing data to a set:

let array = [1, 3, 5, 3, 1]
let triadSetFromArray = new Set(array)
// the Set now looks like this: [1, 3, 5]

You'll note that the triadSetFromArray doesn't repeat the second 3 or 1 because (again), the values in a set are unique!

If we want to add to our set, we can call a method add() to do so:

triadSetFromArray.add(8);
// the Set now looks like this: [1, 3, 5, 8]

N.B. The add() method adds the new element to the end of the set object.

If you want to remove an element from a set object, you can do that by calling the delete() method:

triadSetFromArray.delete(8);
// the Set now looks like this: [1, 3, 5]

So let's say you've created your great new set, triadSetFromArray and you want to check what it contains. Sets have a method has() that you can call to check on the contents. has() returns a boolean value depending on the contents and works like this:

triadSetFromArray.has(5);
// true

triadSetFromArray.has(4);
// false

Now let's say you've been given the array above and are tasked with returning the amount of unique items exist in the array. Well, sets have a size property that you can call to retrieve that kind of data.

let array = [1, 3, 5, 3, 1]
let triadSetFromArray = new Set(array)

return triadSetFromArray.size
// 3

And if you decide that you're over the entire set object and you want to get clear out the whole thing (or, you know, you have a better reason to do it 😉), you can call the clear() method to do so:

triadSetFromArray.clear();
// The Set now looks like this: []

So there's a little introduction to Sets. I think they're awesome and super helpful and I very much recommend adding them to your arsenal!

18