Fill all elements within a portion of an array according to a callback function.
var fillBy = require( '@stdlib/array/base/fill-by' );
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
- Negative
start
andend
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.
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 ]