code: function differenceBy(iterable, values, iteratee) {
    if (!iterable) return iterable
    const valueSet = Set(values.map(iteratee))
    return iterable.filterNot((x) => valueSet.has(iteratee(x)))
  }
docs: This method is like `_.difference` except that it accepts `iteratee` which
  is invoked for each element of `iterable` and `values` to generate the criterion
  by which they're compared. Result values are chosen from the first iterable.
  The iteratee is invoked with one argument: (value).
  
  @static
  @memberOf _
  @category Iterable
  @param {Iterable} iterable The iterable to inspect.
  @param {...Iterable} [values] The values to exclude.
  @param {Function} [iteratee=_.identity] The iteratee invoked per element.
  @returns {Iterable} Returns the new iterable of filtered values.
  @example
  
  _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor)
  // => [1.2]