iterAnyBy

Test whether at least one iterated value passes a test implemented by a predicate function.

Usage

var iterAnyBy = require( '@stdlib/iter/any-by' );

iterAnyBy( iterator, predicate[, thisArg] )

Tests whether at least one iterated value passes a test implemented by a predicate function.

var array2iterator = require( '@stdlib/array/to-iterator' );

function predicate( v ) {
    return ( v > 0 );
}

var arr = array2iterator( [ 0, 0, 0, 0, 1 ] );

var bool = iterAnyBy( arr, 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 = iterAnyBy( array2iterator( [] ), 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( [ 0, 0, 1, 0, 0 ] );

var ctx = {
    'count': 0
};

var bool = iterAnyBy( arr, predicate, ctx );
// returns true

var n = ctx.count;
// returns 3

Notes

  • The function immediately returns upon encountering a truthy return value.

Examples

var randu = require( '@stdlib/random/iter/randu' );
var iterAnyBy = require( '@stdlib/iter/any-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 any values exceed a threshold:
var bool = iterAnyBy( riter, threshold );
// returns <boolean>

console.log( bool );
Did you find this page helpful?