AccessorArray
Create a minimal array-like object supporting the accessor protocol from another array-like object.
Usage
var AccessorArray = require( '@stdlib/array/base/accessor' );
AccessorArray( arr )
Creates a minimal array-like object supporting the accessor protocol from another array-like object.
var arr = new AccessorArray( [ 1, 2, 3 ] );
// returns <AccessorArray>
Properties
AccessorArray.prototype.length
Number of array elements.
var arr = new AccessorArray( [ 1, 2, 3 ] );
// returns <AccessorArray>
var len = arr.length;
// returns 3
Methods
AccessorArray.prototype.get( i )
Returns an array element located at position (index) i
.
var arr = new AccessorArray( [ 1, 2, 3 ] );
// Get the first element:
var v = arr.get( 0 );
// returns 1
AccessorArray.prototype.set( v[, i] )
Sets an array element.
var arr = new AccessorArray( [ 1, 2, 3 ] );
// Get the first element:
var v = arr.get( 0 );
// returns 1
// Set the first element:
arr.set( 5 );
// Get the first element:
v = arr.get( 0 );
// returns 5
By default, the method sets array elements starting at position (index) i = 0
. To set elements starting elsewhere in the array, provide an index argument i
.
var arr = new AccessorArray( [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] );
// Get the fifth element:
var v = arr.get( 4 );
// returns 5
// Set the fifth element:
arr.set( 11, 4 );
// Get the fifth element:
v = arr.get( 4 );
// returns 11
Examples
var AccessorArray = require( '@stdlib/array/base/accessor' );
// Define a class for creating a minimal sparse array-like object...
function SparseArray( len, values ) {
this.length = len;
this._data = values;
return this;
}
SparseArray.prototype.get = function get( i ) {
var v = this._data[ i ];
if ( v === void 0 ) {
return 0;
}
return v;
};
SparseArray.prototype.set = function set( v, i ) {
this._data[ i ] = v;
};
// Define a function for printing the contents of an array and which assumes accessor protocol support:
function printArray( name, x ) {
var i;
for ( i = 0; i < x.length; i++ ) {
console.log( '%s[%d] = %d', name, i, x.get( i ) );
}
}
// Create a sparse array-like object:
var sparse = new SparseArray( 10, {
'2': 1,
'3': 2,
'8': 3
});
// Create a dense array:
var arr = [ 0, 0, 1, 2, 0, 0, 0, 0, 3, 0 ];
// Convert the dense array to an accessor array to allow for uniform iteration:
var dense = new AccessorArray( arr );
// Print the contents of each array...
printArray( 'sparse', sparse );
printArray( 'dense', dense );