cusomeByRight

Cumulatively test whether at least n elements in a provided array pass a test implemented by a predicate function, while iterating from right-to-left.

Usage

var cusomeByRight = require( '@stdlib/array/base/cusome-by-right' );

cusomeByRight( x, n, predicate[, thisArg ] )

Cumulatively tests whether at least n elements in a provided array pass a test implemented by a predicate function, while iterating from right-to-left.

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

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

var y = cusomeByRight( x, 2, fcn );
// returns [ false, false, false, false, true ];

The invoked predicate function is provided three arguments:

  • value: collection element.
  • index: collection index.
  • collection: input collection.

To set the function execution context, provide a thisArg.

function fcn( v ) {
    this.count += 1;
    return ( v > 0 );
}

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

var context = {
    'count': 0
};

var bool = cusomeByRight( x, 2, fcn, context );
// returns [ false, false, false, false, true ]

var count = context.count;
// returns 5

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

Cumulatively tests whether at least n elements in a provided array pass a test implemented by a predicate function, while iterating from right-to-left, and assigns the results to the elements in the output array.

function fcn( v ) {
    return v > 0;
}

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

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

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

Examples

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

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

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

// Minimum number of required positive array elements:
var n = 2;

// Cumulatively test whether at least `n` array elements pass a test, while iterating from right-to-left:
var out = cusomeByRight( x, n, fcn );
console.log( out );
Did you find this page helpful?