accessors

Return element accessors for a provided array-like object.

Usage

var accessors = require( '@stdlib/array/base/accessors' );

accessors( x )

Returns element accessors for a provided array-like object.

var obj = accessors( [ 1, 2, 3, 4 ] );
// returns {...}

var bool = obj.accessorProtocol;
// returns false

var fcns = obj.accessors;
// returns [ <Function>, <Function> ]

Notes

  • The returned object has the following properties:

    • accessorProtocol: boolean indicating whether the provided array-like object supports the get/set protocol (i.e., uses accessors for getting and setting elements).
    • accessors: a two-element array whose first element is an accessor for retrieving an array element (i.e., a getter) and whose second element is an accessor for setting an array element (i.e., a setter).
  • The getter accessor accepts two arguments:

    • arr: array-like object.
    • idx: element index.
  • The setter accessor accepts three arguments:

    • arr: array-like object.
    • idx: element index.
    • value: value to set.
  • The intent of this function is to provide a minimal abstraction over how elements are accessed when operating on indexed (i.e., array-like objects supporting element accesss via integer indices using bracket [] syntax) and accessor (i.e., array-like objects supporting the get/set protocol in which explicit get and set methods are used for element access) array-like objects.

Examples

var Complex64Array = require( '@stdlib/array/complex64' );
var zeroTo = require( '@stdlib/array/base/zero-to' );
var accessors = require( '@stdlib/array/base/accessors' );

// Create an array:
var x = new Complex64Array( zeroTo( 10 ) );

// Get accessor functions for retrieving array elements:
var obj = accessors( x );
// returns {...}

// Check whether the array supports the accessor protocol:
var bool = obj.accessorProtocol;
// returns true

console.log( 'Accessor protocol: %s', bool );

// Retrieve an array element:
var v = obj.accessors[ 0 ]( x, 1 );
// returns <Complex64>

console.log( 'x[1] = %s', v.toString() );
Did you find this page helpful?