function accessors( N, condition, x, y, out, stride, offset ) {
	var xdata;
	var ydata;
	var cdata;
	var odata;
	var xget;
	var yget;
	var cget;
	var oset;
	var sx;
	var sy;
	var sc;
	var ix;
	var iy;
	var ic;
	var io;
	var i;

	cdata = condition.data;
	xdata = x.data;
	ydata = y.data;
	odata = out.data;

	cget = condition.accessors[ 0 ];
	xget = x.accessors[ 0 ];
	yget = y.accessors[ 0 ];
	oset = out.accessors[ 1 ];

	// Broadcast the arrays by computing strides:
	sc = resolveStride( cdata.length, N );
	sx = resolveStride( xdata.length, N );
	sy = resolveStride( ydata.length, N );

	// Initialize indices:
	ic = 0;
	ix = 0;
	iy = 0;
	io = offset;

	// Extract each desired element from a provided array...
	for ( i = 0; i < N; i++ ) {
		oset( odata, io, ( cget( cdata, ic ) ) ? xget( xdata, ix ) : yget( ydata, iy ) ); // eslint-disable-line max-len
		ic += sc;
		ix += sx;
		iy += sy;
		io += stride;
	}
	return odata;
}
Takes elements from either one accessor array or another depending on a condition and assigns the values to elements in an accessor output array.

@private
@param {NonNegativeInteger} N - number of indexed elements
@param {Object} condition - condition array object
@param {Object} x - first input array object
@param {Object} y - second input array object
@param {Object} out - output array object
@param {integer} stride - output array stride
@param {NonNegativeInteger} offset - output array offset
@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 y = toAccessorArray( [ 5, 6, 7, 8 ] );

var condition = toAccessorArray( [ true, false, true, false ] );

var out = toAccessorArray( [ 0, 0, 0, 0 ] );
var arr = accessors( out.length, arraylike2object( condition ), arraylike2object( x ), arraylike2object( y ), arraylike2object( out ), 1, 0 );

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

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