function accessorsMap( x, indices, mode, out, stride, offset, clbk ) {
	var getIndex;
	var xdata;
	var idata;
	var odata;
	var xget;
	var iget;
	var oset;
	var max;
	var io;
	var i;
	var j;

	xdata = x.data;
	idata = indices.data;
	odata = out.data;

	xget = x.accessors[ 0 ];
	iget = indices.accessors[ 0 ];
	oset = out.accessors[ 1 ];

	// Resolve a function for returning an index according to the specified index mode:
	getIndex = ind( mode );

	// Resolve the maximum index:
	max = xdata.length - 1;

	// Extract each desired element from the provided array...
	io = offset;
	for ( i = 0; i < idata.length; i++ ) {
		j = getIndex( iget( idata, i ), max );

		// eslint-disable-next-line no-useless-call
		oset( odata, io, clbk.call( null, xget( xdata, j ), j ) );
		io += stride;
	}
	return odata;
}
Takes elements from an accessor array and assigns the values to elements in an accessor output array.

@private
@param {Object} x - input array object.
@param {Object} indices - index array object.
@param {string} mode - index mode.
@param {Object} out - output array object.
@param {integer} stride - output array stride.
@param {NonNegativeInteger} offset - Output array offset.
@param {Function} clbk - callback function applied to each selected element.
@returns {Collection} output array.

@example
var toAccessorArray = require( '@stdlib/array/base/to-accessor-array' );
var arraylike2object = require( '@stdlib/array/base/arraylike2object' );

var x = toAccessorArray( [ 1, 2, 3, 4 ] );
var indices = toAccessorArray( [ 3, 1, 2, 0 ] );

function clbk(val){
	return val+1;
}

var out = toAccessorArray( [ 0, 0, 0, 0 ] );
var arr = accessorsMap( arraylike2object( x ), arraylike2object( indices ), 'throw', arraylike2object( out ), 1, 0, clbk );
// [ 4, 2, 3, 1 ]