Im little confused in the subset what's wrong with my answer

Tell us what’s happening:

Your code so far


class Set {
constructor() {
  // This will hold the set
  this.dictionary = {};
  this.length = 0;
}
// This method will check for the presence of an element and return true or false
has(element) {
  return this.dictionary[element] !== undefined;
}
// This method will return all the values in the set
values() {
  return Object.keys(this.dictionary);
}
// This method will add an element to the set
add(element) {
  if (!this.has(element)) {
    this.dictionary[element] = true;
    this.length++;
    return true;
  }

  return false;
}
// This method will remove an element from a set
remove(element) {
  if (this.has(element)) {
    delete this.dictionary[element];
    this.length--;
    return true;
  }

  return false;
}
// This method will return the size of the set
size() {
  return this.length;
}
// This is our union method 
union(set) {
  const newSet = new Set();
  this.values().forEach(value => {
    newSet.add(value);
  })
  set.values().forEach(value => {
    newSet.add(value);
  })

  return newSet;
}
// This is our intersection method
intersection(set) {
  const newSet = new Set();

  let largeSet;
  let smallSet;
  if (this.dictionary.length > set.length) {
    largeSet = this;
    smallSet = set;
  } else {
    largeSet = set;
    smallSet = this;
  }

  smallSet.values().forEach(value => {
    if (largeSet.dictionary[value]) {
      newSet.add(value);
    }
  })

  return newSet;
}

difference(set) {
  const newSet = new Set();

  this.values().forEach(value => {
    if (!set.dictionary[value]) {
      newSet.add(value);
    }
  })

  return newSet;
}
// Only change code below this line
subset(set) {
  for(const value of this.values()){
    if(!set.dictionary[value]) return false;
  }
  return true
}

// Only change code above this line
}

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36.

Challenge: Perform a Subset Check on Two Sets of Data

Link to the challenge:

The logic is correct, but you must use " isSubsetOf" as the method name, just as stated in the challenge.

1 Like