everyByRight

Test whether all elements in an array pass a test implemented by a predicate function, iterating from right to left.

Usage

var everyByRight = require( '@stdlib/array/base/every-by-right' );

everyByRight( x, predicate[, thisArg] )

Tests whether all elements in an array pass a test implemented by a predicate function, iterating from right to left.

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

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

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

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

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

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

var bool = everyByRight( 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 = everyByRight( x, predicate, context );
// returns false

var cnt = context.count;
// returns 3

Notes

  • The function performs a linear scan and returns immediately upon encountering a non-truthy return value. Unlike Array.prototype.every, when performing a linear scan, the function does not skip undefined elements.
  • If provided an empty array, the function returns true.

Examples

var discreteUniform = require( '@stdlib/random/array/discrete-uniform' );
var isPositiveInteger = require( '@stdlib/assert/is-positive-integer' ).isPrimitive;
var naryFunction = require( '@stdlib/utils/nary-function' );
var everyByRight = require( '@stdlib/array/base/every-by-right' );

var x = discreteUniform( 10, 0, 10, {
    'dtype': 'int32'
});
// returns <Int32Array>

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