function mapRight( arr, fcn, thisArg ) {
	var out;
	if ( !isFunction( fcn ) ) {
		throw new TypeError( format( 'invalid argument. Second argument must be a function. Value: `%s`.', fcn ) );
	}
	if ( isndarrayLike( arr ) ) { // note: assertion order matters here, as an ndarray-like object is also array-like
		arr = ndarraylike2object( arr );
		out = ndzeros( arr.shape, {
			'dtype': 'generic',
			'order': arr.order
		});
		ndarrayFcn( arr, ndarraylike2object( out ), fcn, thisArg );
		return out;
	}
	if ( isArrayLikeObject( arr ) ) {
		out = zeros( arr.length );
		arrayFcn( arraylike2object( arr ), arraylike2object( out ), fcn, thisArg ); // eslint-disable-line max-len
		return out;
	}
	throw new TypeError( format( 'invalid argument. First argument must be an array-like object or an ndarray. Value: `%s`.', arr ) );
}
/**
* Applies a function to each element in an array and assigns the result to an element in a new array, iterating from right to left.
*
* ## Notes
*
* -   The applied function is provided the following arguments:
*
*     -   **value**: array element.
*     -   **index**: element index.
*     -   **arr**: input array.
*
* @param {(ArrayLikeObject|ndarray)} arr - input array
* @param {Function} fcn - function to apply
* @param {*} [thisArg] - function execution context
* @throws {TypeError} first argument must be an array-like object or an ndarray
* @throws {TypeError} second argument must be a function
* @returns {(Array|ndarray)} output array
*
* @example
* var naryFunction = require( '@stdlib/utils-nary-function' );
* var abs = require( '@stdlib/math-base-special-abs' );
*
* var arr = [ -1, -2, -3, -4, -5, -6 ];
*
* var out = mapRight( arr, naryFunction( abs, 1 ) );
* // returns [ 1, 2, 3, 4, 5, 6 ]
*
* @example
* var naryFunction = require( '@stdlib/utils-nary-function' );
* var abs = require( '@stdlib/math-base-special-abs' );
* var array = require( '@stdlib/ndarray-array' );
*
* var opts = {
*     'dtype': 'generic'
* };
* var arr = array( [ [ -1, -2, -3 ], [ -4, -5, -6 ] ], opts );
*
* var out = mapRight( arr, naryFunction( abs, 1 ) );
* // returns <ndarray>
*
* var data = out.data;
* // returns [ 1, 2, 3, 4, 5, 6 ]
*/
Applies a function to each element in an array and assigns the result to an element in a new array, iterating from right to left.
Notes

The applied function is provided the following arguments.

value**: array element.
index**: element index.
arr**: input array.
Applies a function to each element in an array and assigns the result to an element in a new array iterating from right to left . Notes The applied function is provided the following arguments . value ** : array element . index ** : element index . arr ** : input array .
function mapRight( arr, fcn, thisArg ) {
	var out;
	if ( !isFunction( fcn ) ) {
		throw new TypeError( format( 'invalid argument. Second argument must be a function. Value: `%s`.', fcn ) );
	}
	if ( isndarrayLike( arr ) ) { 
		arr = ndarraylike2object( arr );
		out = ndzeros( arr.shape, {
			'dtype': 'generic',
			'order': arr.order
		});
		ndarrayFcn( arr, ndarraylike2object( out ), fcn, thisArg );
		return out;
	}
	if ( isArrayLikeObject( arr ) ) {
		out = zeros( arr.length );
		arrayFcn( arraylike2object( arr ), arraylike2object( out ), fcn, thisArg ); 
		return out;
	}
	throw new TypeError( format( 'invalid argument. First argument must be an array-like object or an ndarray. Value: `%s`.', arr ) );
}
function mapRight ( arr , fcn , thisArg ) { var out ; if ( ! isFunction ( fcn ) ) { throw new TypeError ( format ( 'invalid argument. Second argument must be a function. Value: `%s`.' , fcn ) ) ; } if ( isndarrayLike ( arr ) ) { arr = ndarraylike2object ( arr ) ; out = ndzeros ( arr . shape , { 'dtype' : 'generic' , 'order' : arr . order } ) ; ndarrayFcn ( arr , ndarraylike2object ( out ) , fcn , thisArg ) ; return out ; } if ( isArrayLikeObject ( arr ) ) { out = zeros ( arr . length ) ; arrayFcn ( arraylike2object ( arr ) , arraylike2object ( out ) , fcn , thisArg ) ; return out ; } throw new TypeError ( format ( 'invalid argument. First argument must be an array-like object or an ndarray. Value: `%s`.' , arr ) ) ; }
Applies a function to each element in an array and assigns the result to an element in a new array, iterating from right to left.
Applies a function to each element in an array and assigns the result to an element in a new array iterating from right to left .
// note: assertion order matters here, as an ndarray-like object is also array-like // eslint-disable-line max-len