# Iteration Order > Given a stride array, determine array iteration order.
## Usage ```javascript var iterationOrder = require( '@stdlib/ndarray/base/iteration-order' ); ``` #### iterationOrder( strides ) Returns the array iteration order. ```javascript var o = iterationOrder( [ 2, 1 ] ); // returns 1 o = iterationOrder( [ -2, 1 ] ); // returns 0 o = iterationOrder( [ -2, -1 ] ); // returns -1 ``` The function returns one of the following values: - `0`: unordered (strides are of mixed sign). - `1`: left-to-right iteration order (strides are all nonnegative). - `-1`: right-to-left iteration order (strides are all negative).
## Examples ```javascript var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ); var shape2strides = require( '@stdlib/ndarray/base/shape2strides' ); var randu = require( '@stdlib/random/base/randu' ); var iterationOrder = require( '@stdlib/ndarray/base/iteration-order' ); var strides; var shape; var out; var i; var j; shape = [ 0, 0, 0 ]; shape[ 0 ] = discreteUniform( 1, 10 ); shape[ 1 ] = discreteUniform( 1, 10 ); shape[ 2 ] = discreteUniform( 1, 10 ); strides = shape2strides( shape, 'row-major' ); for ( i = 0; i < 100; i++ ) { j = discreteUniform( 0, shape.length-1 ); strides[ j ] *= ( randu() < 0.5 ) ? -1 : 1; out = iterationOrder( strides ); console.log( 'strides: %s => %d', strides.join( ',' ), out ); } ```