function some(collection, callback, thisArg) {
      var result;

      callback = lodash.createCallback(callback, thisArg, 3);
      if (isArray(collection)) {
        var index = -1,
            length = collection.length;

        while (++index < length) {
          if (callback(collection[index], index, collection)) {
            return true;
          }
        }
      } else {
        baseEach(collection, function(value, index, collection) {
          return !(result = callback(value, index, collection));
        });
      }
      return !!result;
    }
Checks if the callback returns a truey value for **any** element of a
collection. The function returns as soon as it finds a passing value and
does not iterate over the entire collection. The callback is bound to
`thisArg` and invoked with three arguments; (value, index|key, collection).

If a property name is provided for `callback` the created "_.pluck" style
callback will return the property value of the given element.

If an object is provided for `callback` the created "_.where" style callback
will return `true` for elements that have the properties of the given object,
else `false`.

@static
@memberOf _
@alias any
@category Collections
@param {Array|Object|string} collection The collection to iterate over.
@param {Function|Object|string} [callback=identity] The function called
 per iteration. If a property name or object is provided it will be used
 to create a "_.pluck" or "_.where" style callback, respectively.
@param {*} [thisArg] The `this` binding of `callback`.
@returns {boolean} Returns `true` if any element passed the callback check,
 else `false`.
@example

_.some([null, 0, 'yes', false], Boolean);
// => true

var characters = [
  { 'name': 'barney', 'age': 36 },
  { 'name': 'fred',   'age': 40, 'blocked': true }
];

// using "_.pluck" callback shorthand
_.some(characters, 'blocked');
// => true

// using "_.where" callback shorthand
_.some(characters, { 'age': 1 });
// => false