# Removing duplicates from a set test broken?

In this exercise we are going to perform a union on two sets of data. We will create a method on our `Set` data structure called `union` . This method should take another `Set` as an argument and return the `union` of the two sets, excluding any duplicate values.

For example, if `setA = ['a','b','c']` and `setB = ['a','b','d','e']` , then the union of setA and setB is: `setA.union(setB) = ['a', 'b', 'c', 'd', 'e']` .

``````function Set() {
// the var collection will hold the set
var collection = [];
// this method will check for the presence of an element and return true or false
this.has = function(element) {
return (collection.indexOf(element) !== -1);
};
// this method will return all the values in the set
this.values = function() {
return collection;
};
// this method will add an element to the set
if(!this.has(element)){
collection.push(element);
return true;
}
return false;
};
// this method will remove an element from a set
this.remove = function(element) {
if(this.has(element)){
var index = collection.indexOf(element);
collection.splice(index,1);
return true;
}
return false;
};
// this method will return the size of the set
this.size = function() {
return collection.length;
};
// change code below this line
this.union = function(setB) {
let union = collection.concat(setB);

for(let i = 0; i < union.length; i++){
while(union.indexOf(union[i]) != union.lastIndexOf(union[i])) {
union.splice(i,1);
}
}
return union;
};
// change code above this line
}
``````

The error message I get back says the proper collection was returned… I tested with my own tests and show that I am returning the correct union for any two given arrays. Not sure why it won’t pass the automated tests. Anyone have any ideas?

1 Like

Did you ever get this figured out? I’m having the same problem.