iterSomeBy
Test whether at least
n
iterated values pass a test implemented by a predicate function.
Usage
var iterSomeBy = require( '@stdlib/iter/some-by' );
iterSomeBy( iterator, n, predicate[, thisArg] )
Tests whether at least n
iterated values pass a test implemented by a predicate
function.
var array2iterator = require( '@stdlib/array/to-iterator' );
function predicate( v ) {
return ( v > 0 );
}
var arr = array2iterator( [ 1, 1, 1, 0, 1 ] );
var bool = iterSomeBy( arr, 4, predicate );
// returns true
If a provided iterator
does not return any iterated values, the function returns false
.
var array2iterator = require( '@stdlib/array/to-iterator' );
function predicate() {
return true;
}
var bool = iterSomeBy( array2iterator( [] ), 1, predicate );
// returns false
A predicate
function is provided two arguments:
- value: iterated value
- index: iteration index (zero-based)
To set the execution context of the predicate
function, provide a thisArg
.
var array2iterator = require( '@stdlib/array/to-iterator' );
function predicate( v ) {
this.count += 1;
return ( v > 0 );
}
var arr = array2iterator( [ 1, 1, 0, 1, 1 ] );
var ctx = {
'count': 0
};
var bool = iterSomeBy( arr, 3, predicate, ctx );
// returns true
var n = ctx.count;
// returns 4
Notes
- The function immediately returns upon encountering
n
truthy return values.
Examples
var randu = require( '@stdlib/random/iter/randu' );
var iterSomeBy = require( '@stdlib/iter/some-by' );
function threshold( r ) {
return ( r >= 0.95 );
}
// Create an iterator which generates uniformly distributed pseudorandom numbers:
var opts = {
'iter': 100
};
var riter = randu( opts );
// Determine if at least 5 values exceed a threshold:
var bool = iterSomeBy( riter, 5, threshold );
// returns <boolean>
console.log( bool );