function baseEachRight(collection, callback) {
      var iterable = collection,
          length = collection ? collection.length : 0;

      if (typeof length == 'number') {
        if (support.unindexedChars && isString(iterable)) {
          iterable = iterable.split('');
        }
        while (length--) {
          if (callback(iterable[length], length, collection) === false) {
            break;
          }
        }
      } else {
        baseForOwnRight(collection, callback);
      }
      return collection;
    }
The base implementation of `_.forEachRight` without support for callback
shorthands or `thisArg` binding.

@private
@param {Array|Object|string} collection The collection to iterate over.
@param {Function} callback The function called per iteration.
@returns {Array|Object|string} Returns `collection`.