noneByRight

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

Usage

var noneByRight = require( '@stdlib/array/base/none-by-right' );

noneByRight( x, predicate[, thisArg] )

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

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

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

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

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.every, when performing a linear scan, the function does not skip undefined elements.
  • If provided an empty array, the function returns true.

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 noneByRight = require( '@stdlib/array/base/none-by-right' );

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

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