function accessors( x, mask, out, stride, offset, clbk, thisArg ) {
	var xdata;
	var mdata;
	var odata;
	var xget;
	var mget;
	var oset;
	var io;
	var i;

	xdata = x.data;
	mdata = mask.data;
	odata = out.data;

	xget = x.accessors[ 0 ];
	mget = mask.accessors[ 0 ];
	oset = out.accessors[ 1 ];

	io = offset;
	for ( i = 0; i < xdata.length; i++ ) {
		if ( mget( mdata, i ) ) {
			oset( odata, io, clbk.call( thisArg, xget( xdata, i ), i, xdata ) );
			io += stride;
		}
	}
	return odata;
}
Applies a mask and a callback function to an input accessor array and assigns results to elements in an output accessor array.

@private
@param {Object} x - input array object
@param {Object} mask - mask array object
@param {Object} out - output array object
@param {integer} stride - output array stride
@param {NonNegativeInteger} offset - output array offset
@param {Function} clbk - function to apply
@param {*} [thisArg] - callback execution context
@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 mask = toAccessorArray( [ 0, 1, 0, 1 ] );

function scale( x ) {
    return x * 10;
}

var out = toAccessorArray( [ 0, 0, 0, 0 ] );
var arr = accessors( arraylike2object( x ), arraylike2object( mask ), arraylike2object( out ), 1, 0, scale );

var v = arr.get( 0 );
// returns 20

v = arr.get( 1 );
// returns 40