jweinst1
1/1/2016 - 5:15 AM

Implementation of a set and set interface in type script

Implementation of a set and set interface in type script

/**
 * Created by Josh on 12/31/15.
 */

//general set interface
interface set {
    collection: {};

    contains:(element:any) => boolean;

    add:(element:any) => void;

    remove:(element:any) => void;

    toarray:() => any[];
}

class numset implements set {
    collection: {};
    constructor(elements:number[]) {
        this.collection = {};
        for(var elem in elements) this.collection[elements[elem]] = true;
    }
    contains(element:number) {
        return element in this.collection
    }
    add(element:number) {
        this.collection[element] = true;
    }
    remove(element:number) {
        delete this.collection[element]
    }
    toarray() {
        var arr = [];
        for(var key in this.collection) arr.push(key);
        return arr;
    }
}


var test = new numset([1, 2, 3, 4]);
console.log(test.contains(3));