# strides2offset > Determine the index offset which specifies the location of the first indexed value in a multidimensional array based on a stride array.
## Usage ```javascript var strides2offset = require( '@stdlib/ndarray/base/strides2offset' ); ``` #### strides2offset( shape, strides ) Returns the index offset which specifies the location of the first indexed value in a multidimensional array. ```javascript var offset = strides2offset( [ 3, 2 ], [ 2, 1 ] ); // returns 0 offset = strides2offset( [ 3, 2 ], [ -2, 1 ] ); // returns 4 ```
## Examples ```javascript var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ); var shape2strides = require( '@stdlib/ndarray/base/shape2strides' ); var numel = require( '@stdlib/ndarray/base/numel' ); var randu = require( '@stdlib/random/base/randu' ); var strides2offset = require( '@stdlib/ndarray/base/strides2offset' ); var strides; var offset; var shape; var len; var arr; 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' ); len = numel( shape ); arr = []; for ( i = 0; i < len; i++ ) { arr.push( i ); } for ( i = 0; i < 100; i++ ) { j = discreteUniform( 0, shape.length-1 ); strides[ j ] *= ( randu() < 0.5 ) ? -1 : 1; offset = strides2offset( shape, strides ); console.log( 'arr[0][0][0] = %d', arr[ offset ] ); } ```