Skip to content

Latest commit

 

History

History

fill-by

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

fillBy

Fill all elements within a portion of an array according to a callback function.

Usage

var fillBy = require( '@stdlib/array/base/fill-by' );

fillBy( x, start, end, fcn[, thisArg] )

Fills all elements within a portion of an array from an inclusive start index to an exclusive end index according to a provided callback function.

function fcn() {
    return 10;
}

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

var out = fillBy( x, 1, 4, fcn );
// returns [ 1, 10, 10, 10, 5, 6 ]

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

The callback function is provided the following arguments:

  • value: current array element.
  • index: current array element index.
  • arr: input array.

To set the callback execution context, provide a thisArg.

function fcn() {
    this.count += 1;
    return 10;
}

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

var ctx = {
    'count': 0
};
var out = fillBy( x, 1, 4, fcn, ctx );
// returns [ 1, 10, 10, 10, 5, 6 ]

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

var cnt = ctx.count;
// returns 3

Notes

  • Negative start and end indices are resolved to positive indices by counting from the end of the array with -1 corresponding to the last indexed element.
  • The function mutates the input array.

Examples

var constantFunction = require( '@stdlib/utils/constant-function' );
var Float64Array = require( '@stdlib/array/float64' );
var zeroTo = require( '@stdlib/array/base/zero-to' );
var fillBy = require( '@stdlib/array/base/fill-by' );

var x = new Float64Array( zeroTo( 6 ) );
// returns <Float64Array>[ 0.0, 1.0, 2.0, 3.0, 4.0, 5.0 ]

var y = fillBy( x, 0, 6, constantFunction( 10.0 ) );
// returns <Float64Array>[ 10.0, 10.0, 10.0, 10.0, 10.0, 10.0 ]

y = fillBy( x, 0, 4, constantFunction( 0.0 ) );
// returns <Float64Array>[ 0.0, 0.0, 0.0, 0.0, 10.0, 10.0 ]

y = fillBy( x, 2, 6, constantFunction( 20.0 ) );
// returns <Float64Array>[ 0.0, 0.0, 20.0, 20.0, 20.0, 20.0 ]

y = fillBy( x, 2, 4, constantFunction( 30.0 ) );
// returns <Float64Array>[ 0.0, 0.0, 30.0, 30.0, 20.0, 20.0 ]