Learn Simpli

Free Online Tutorial For Programmers, Contains a Solution For Question in Programming. Quizzes and Practice / Company / Test interview Questions.

Set

What is set?
  1. Set is a collection of unique values
  2. A value in the Set may only occur once
Write a code
const setInstance = new Set()
setInstance.add(2);
setInstance.add(3);
setInstance.add(2);
setInstance.add(3);
setInstance.has(1);
setInstance.has(3);
console.log(setInstance);
// Set(2) { 2, 3 }
Set operations
  1. Union: A set algorithm that compares 2 sets, and returns the third set that contains all of the unique items from the both
  2. Intersection: A set algorithm that compares 2 sets, and returns the third set that contains both intersecting or matching values
  3. Difference:  A set algorithm that takes 2 input sets (set A and B), and returns all the items of A that are not available in set B
Code for a set operation
Let’s see the set operations in Javascript
function isSuperset(set, subset) {
    for (let item of subset) {
        if (!set.has(item)) {
            return false
        }
    }
    return true
}

function union(setA, setB) {
    let _union = new Set(setA)
    for (let item of setB) {
        _union.add(item)
    }
    return _union
}

function intersection(setA, setB) {
    let _intersection = new Set()
    for (let item of setB) {
        if (setA.has(item)) {
            _intersection.add(item)
        }
    }
    return _intersection
}

function symmetricDifference(setA, setB) {
    let _difference = new Set(setA)
    for (let item of setB) {
        if (_difference.has(item)) {
            _difference.delete(item)
        } else {
            _difference.add(item)
        }
    }
    return _difference
}

function difference(setA, setB) {
    let _difference = new Set(setA)
    for (let item of setB) {
        _difference.delete(item)
    }
    return _difference
}

const setA = new Set([1, 2, 3, 4])
const setB = new Set([2, 3])
const setC = new Set([3, 4, 5, 6])

isSuperset(setA, setB)
union(setA, setC)
intersection(setA, setC)
symmetricDifference(setA, setC)
difference(setA, setC)