anyByRight
Test whether at least one element in an array passes a test implemented by a predicate function, while iterating from right to left.
Usage
var anyByRight = require( '@stdlib/array/base/any-by-right' );
anyByRight( x, predicate[, thisArg] )
Tests whether at least one element in an array passes a test implemented by a predicate
function, while iterating from right to left.
function isPositive( value ) {
return ( value > 0 );
}
var x = [ 0, 0, 1, 0 ];
var bool = anyByRight( 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 = anyByRight( 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 = anyByRight( x, predicate, context );
// returns true
var cnt = context.count;
// returns 2
Notes
- 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 skipundefined
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 anyByRight = require( '@stdlib/array/base/any-by-right' );
var x = bernoulli( 10, 0.1, {
'dtype': 'int8'
});
// returns <Int8Array>
var out = anyByRight( x, naryFunction( isPositiveInteger, 1 ) );
// returns <boolean>