function some( collection, n ) {
	var count;
	var len;
	var i;
	if ( !isCollection( collection ) ) {
		throw new TypeError( format( 'invalid argument. First argument must be a collection. Value: `%s`.', collection ) );
	}
	if ( !isPositiveInteger( n ) ) {
		throw new TypeError( format( 'invalid argument. Second argument must be a positive integer. Value: `%s`.', n ) );
	}
	len = collection.length;
	count = 0;
	for ( i = 0; i < len; i++ ) {
		if ( collection[ i ] ) {
			count += 1;
			if ( count === n ) {
				return true;
			}
		}
	}
	return false;
}
Tests whether a collection contains at least `n` elements which are truthy.

@param {Collection} collection - input collection
@param {PositiveInteger} n - number of elements
@throws {TypeError} first argument must be a collection
@throws {TypeError} second argument must be a positive integer
@returns {boolean} boolean indicating whether a collection contains at least `n` elements which are truthy

@example
var arr = [ 0, 0, 1, 2, 3 ];

var bool = some( arr, 3 );
// returns true