cuanyByRight

Cumulatively test whether at least one element in a provided array passes a test implemented by a predicate function, while iterating from right-to-left.

Usage

var cuanyByRight = require( '@stdlib/array/base/cuany-by-right' );

cuanyByRight( x, predicate[, thisArg] )

Cumulatively tests whether at least one element in a provided 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, 0, 1, 0 ];

var y = cuanyByRight( x, isPositive );
// returns [ false, true, true, true, true ]

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 isPositive( value ) {
    this.count += 1;
    return ( value > 0 );
}

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

var context = {
    'count': 0
};

var out = cuanyByRight( x, isPositive, context );
// returns [ false, false, false, true, true ]

var cnt = context.count;
// returns 4

cuanyByRight.assign( x, out, stride, offset, predicate[, thisArg] )

Cumulatively tests whether at least one element in a provided array passes a test implemented by a predicate function, while iterating from right-to-left, and assigns results to a provided output array.

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

var x = [ 0, 1, 0, 0, 0 ];
var y = [ false, null, false, null, false, null, false, null, false, null ];

var out = cuanyByRight.assign( x, y, 2, 0, isPositive );
// returns [ false, null, false, null, false, null, true, null, true, null ]

var bool = ( out === y );
// returns true

The function supports the following parameters:

  • x: input array.
  • out: output array.
  • stride: output array stride.
  • offset: output array offset.
  • predicate: test function.

Examples

var bernoulli = require( '@stdlib/random/array/bernoulli' );
var cuanyByRight = require( '@stdlib/array/base/cuany-by-right' );

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

// Create an array of random values:
var x = bernoulli( 10, 0.1 );
console.log( x );

var out = cuanyByRight( x, isPositive );
console.log( out );
Did you find this page helpful?