filledarrayBy
Create a filled array according to a provided callback function.
Usage
var filledarrayBy = require( '@stdlib/array/filled-by' );
filledarrayBy( [dtype] )
Creates a filled array having a specified data type dtype
.
var arr = filledarrayBy();
// returns <Float64Array>
By default, the output array data type is float64
(i.e., a typed array). To specify an alternative data type, provide a dtype
argument.
var arr = filledarrayBy( 'int32' );
// returns <Int32Array>
filledarrayBy( length[, dtype], clbk[, thisArg] )
Returns a filled array according to a provided callback function and having a specified length
.
function constant() {
return 1.0;
}
var arr1 = filledarrayBy( 5, constant );
// returns <Float64Array>[ 1.0, 1.0, 1.0, 1.0, 1.0 ]
var arr2 = filledarrayBy( 5, 'uint8', constant );
// returns <Uint8Array>[ 1, 1, 1, 1, 1 ]
filledarrayBy( array[, dtype], clbk[, thisArg] )
Creates a filled array from another array (or array-like object) according to a provided callback function.
var arr0 = {
'0': 0.5,
'1': 0.5,
'2': 0.5,
'length': 3
};
function clbk1() {
return 1.0;
}
var arr1 = filledarrayBy( arr0, clbk1 );
// returns <Float64Array>[ 1.0, 1.0, 1.0 ]
function clbk2() {
return 2.0;
}
var arr2 = filledarrayBy( arr1, clbk2 );
// returns <Float64Array>[ 2.0, 2.0, 2.0 ]
function clbk3() {
return 3.0;
}
var arr3 = filledarrayBy( arr1, 'int32', clbk3 );
// returns <Int32Array>[ 3, 3, 3 ]
filledarrayBy( iterable[, dtype], clbk[, thisArg] )
Creates a filled array from an iterable according to a provided callback function.
var iterConstant = require( '@stdlib/iter/constant' );
function clbk() {
return 1.0;
}
var it = iterConstant( 3.0, {
'iter': 3
});
var arr1 = filledarrayBy( it, clbk );
// returns <Float64Array>[ 1.0, 1.0, 1.0 ]
var arr2 = filledarrayBy( it, 'float32', clbk );
// returns <Float32Array>[ 1.0, 1.0, 1.0 ]
filledarrayBy( buffer[, byteOffset[, length]][, dtype], clbk[, thisArg] )
Returns a filled typed array view of an ArrayBuffer
according to a provided callback function.
var ArrayBuffer = require( '@stdlib/array/buffer' );
function clbk() {
return 1.0;
}
var buf = new ArrayBuffer( 32 );
var arr = filledarrayBy( buf, clbk );
// returns <Float64Array>[ 1.0, 1.0, 1.0, 1.0 ]
buf = new ArrayBuffer( 32 );
arr = filledarrayBy( buf, 'float32', clbk );
// returns <Float32Array>[ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ]
buf = new ArrayBuffer( 32 );
arr = filledarrayBy( buf, 16, clbk );
// returns <Float64Array>[ 1.0, 1.0 ]
buf = new ArrayBuffer( 32 );
arr = filledarrayBy( buf, 16, 'float32', clbk );
// returns <Float32Array>[ 1.0, 1.0, 1.0, 1.0 ]
buf = new ArrayBuffer( 32 );
arr = filledarrayBy( buf, 16, 1, clbk );
// returns <Float64Array>[ 1.0 ]
buf = new ArrayBuffer( 32 );
arr = filledarrayBy( buf, 10, 4, 'int16', clbk );
// returns <Int16Array>[ 1, 1, 1, 1 ]
Notes
Creating a generic array from an
ArrayBuffer
is not supported.A callback function is provided a single argument:
- index: the current array index.
Examples
var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ).factory;
var dtypes = require( '@stdlib/array/typed-real-dtypes' );
var filledarrayBy = require( '@stdlib/array/filled-by' );
// Create a pseudorandom number generator:
var rand = discreteUniform( 0, 100 );
// Get a list of array data types:
var dt = dtypes();
// Generate filled arrays...
var arr;
var i;
for ( i = 0; i < dt.length; i++ ) {
arr = filledarrayBy( 10, dt[ i ], rand );
console.log( arr );
}