flatten3d
Flatten a three-dimensional nested array.
Usage
var flatten3d = require( '@stdlib/array/base/flatten3d' );
flatten3d( x, shape, colexicographic )
Flattens a three-dimensional nested array.
var x = [ [ [ 1, 2 ] ], [ [ 3, 4 ] ] ];
var out = flatten3d( x, [ 2, 1, 2 ], false );
// returns [ 1, 2, 3, 4 ]
To flatten in colexicographic order, provide a third argument equal to true
.
var x = [ [ [ 1, 2 ] ], [ [ 3, 4 ] ] ];
var out = flatten3d( x, [ 2, 1, 2 ], true );
// returns [ 1, 3, 2, 4 ]
flatten3d.assign( x, shape, colexicographic, out, stride, offset )
Flattens a three-dimensional nested array and assigns elements to a provided output array.
var Float64Array = require( '@stdlib/array/float64' );
var x = [ [ [ 1, 2 ] ], [ [ 3, 4 ] ] ];
var out = new Float64Array( 4 );
var y = flatten3d.assign( x, [ 2, 1, 2 ], false, out, 1, 0 );
// returns <Float64Array>[ 1, 2, 3, 4 ]
var bool = ( y === out );
// returns true
y = flatten3d.assign( x, [ 2, 1, 2 ], true, out, 1, 0 );
// returns <Float64Array>[ 1, 3, 2, 4 ]
Notes
- Both functions assume that all nested arrays have the same length (i.e., the input array is not a ragged array).
Examples
var flatten3d = require( '@stdlib/array/base/flatten3d' );
var x = [
[ [ 1, 2 ], [ 3, 4 ] ],
[ [ 5, 6 ], [ 7, 8 ] ],
[ [ 9, 10 ], [ 11, 12 ] ],
[ [ 13, 14 ], [ 15, 16 ] ]
];
var out = flatten3d( x, [ 0, 0, 0 ], false );
// returns []
out = flatten3d( x, [ 0, 0, 0 ], true );
// returns []
out = flatten3d( x, [ 1, 1, 1 ], false );
// returns [ 1 ]
out = flatten3d( x, [ 1, 1, 1 ], true );
// returns [ 1 ]
out = flatten3d( x, [ 2, 2, 2 ], false );
// returns [ 1, 2, 3, 4, 5, 6, 7, 8 ]
out = flatten3d( x, [ 2, 2, 2 ], true );
// returns [ 1, 5, 3, 7, 2, 6, 4, 8 ]
out = flatten3d( x, [ 3, 2, 2 ], false );
// returns [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ]
out = flatten3d( x, [ 3, 2, 2 ], true );
// returns [ 1, 5, 9, 3, 7, 11, 2, 6, 10, 4, 8, 12 ]
out = flatten3d( x, [ 4, 2, 2 ], false );
// returns [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]
out = flatten3d( x, [ 4, 2, 2 ], true );
// returns [ 1, 5, 9, 13, 3, 7, 11, 15, 2, 6, 10, 14, 4, 8, 12, 16 ]