anyBy

Test whether at least one element in an array passes a test implemented by a predicate function.

Usage

var anyBy = require( '@stdlib/array/base/any-by' );

anyBy( x, predicate[, thisArg] )

Tests whether at least one element in an array passes a test implemented by a predicate function.

function isPositive( value ) {
    return ( value > 0 );
}

var x = [ 0, 0, 1, 0 ];

var bool = anyBy( x, isPositive );
// returns true

If a predicate function returns a truthy value, the function immediately returns false.

function isPositive( value ) {
    return ( value > 0 );
}

var x = [ -1, -2, -3, -4 ];

var bool = anyBy( x, isPositive );
// returns false

The predicate function is provided three arguments:

  • value: current array element.
  • index: current array element index.
  • arr: input array.

To set the predicate function execution context, provide a thisArg.

function predicate( value ) {
    this.count += 1;
    return ( value > 0 );
}

var x = [ -1, -2, 3, -4 ];

var context = {
    'count': 0
};

var bool = anyBy( x, predicate, context );
// returns true

var cnt = context.count;
// returns 3

Notes

  • If provided an array-like object having a some method (as defined by the ECMAScript Standard), the function defers execution to that method and assumes that the method API has the following signature:

    x.some( predicate, thisArg )
    
  • If provided an array-like object without a some method, the function performs a linear scan and returns immediately upon encountering a truthy return value. Unlike Array.prototype.some, when performing a linear scan, the function does not skip undefined elements.

  • If provided an empty array, the function returns false.

Examples

var bernoulli = require( '@stdlib/random/array/bernoulli' );
var isPositiveInteger = require( '@stdlib/assert/is-positive-integer' ).isPrimitive;
var naryFunction = require( '@stdlib/utils/nary-function' );
var anyBy = require( '@stdlib/array/base/any-by' );

var x = bernoulli( 10, 0.1, {
    'dtype': 'int8'
});
// returns <Int8Array>

var out = anyBy( x, naryFunction( isPositiveInteger, 1 ) );
// returns <boolean>
Did you find this page helpful?