function isEqualBy(value, other, predicate) {
  return _.isFunction(predicate) ? _.isEqual(predicate(value), predicate(other)) : _.isString(predicate) ? _.isEqual(_.get(value, predicate), _.get(other, predicate)) : _.isEqual(value, other);
}
Performs a deep comparison between two values from the given property value to determine if they are equivalent.

@static
@memberOf _
@param {array|object} value - The value to compare.
@param {array|object} other - The other value to compare.
@param {string|function} predicate - The predicate to compare by.
@returns {boolean} Returns true if the values are equivalent else false.