code: function isEqualWith(value, other, customizer) {
          customizer = typeof customizer == 'function' ? customizer : undefined;
          var result = customizer ? customizer(value, other) : undefined;
          return result === undefined ? baseIsEqual(value, other, customizer) : !!result;
        }
docs: This method is like `_.isEqual` except that it accepts `customizer` which
  is invoked to compare values. If `customizer` returns `undefined` comparisons
  are handled by the method instead. The `customizer` is invoked with up to
  six arguments: (objValue, othValue [, index|key, object, other, stack]).
  
  @static
  @memberOf _
  @category Lang
  @param {*} value The value to compare.
  @param {*} other The other value to compare.
  @param {Function} [customizer] The function to customize comparisons.
  @returns {boolean} Returns `true` if the values are equivalent, else `false`.
  @example
  
  function isGreeting(value) {
  return /^h(?:i|ello)$/.test(value);
  }
  
  function customizer(objValue, othValue) {
  if (isGreeting(objValue) && isGreeting(othValue)) {
  return true;
  }
  }
  
  var array = ['hello', 'goodbye'];
  var other = ['hi', 'goodbye'];
  
  _.isEqualWith(array, other, customizer);
  // => true