function mskfilterMap( x, mask, clbk, thisArg ) {
	var xget;
	var mget;
	var out;
	var i;

	// Resolve accessors for retrieving array elements:
	xget = resolveGetter( x );
	mget = resolveGetter( mask );

	// Extract each desired element from the provided array...
	out = [];
	for ( i = 0; i < x.length; i++ ) {
		if ( mget( mask, i ) ) {
			out.push( clbk.call( thisArg, xget( x, i ), i, x ) ); // use `Array#push` to ensure "fast" elements
		}
	}
	return out;
}
Returns a new array after applying a mask and a callback function to a provided input array.

@param {Collection} x - input array
@param {Collection} mask - mask array
@param {Function} clbk - callback function
@param {*} [thisArg] - callback execution context
@returns {Array} output array

@example
var x = [ 1, 2, 3, 4 ];
var mask = [ 0, 1, 0, 1 ];

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

var y = mskfilterMap( x, mask, scale );
// returns [ 20, 40 ]