flatten2d

Flatten a two-dimensional nested array.

Usage

var flatten2d = require( '@stdlib/array/base/flatten2d' );

flatten2d( x, shape, colexicographic )

Flattens a two-dimensional nested array.

var x = [ [ 1, 2 ], [ 3, 4 ] ];

var out = flatten2d( x, [ 2, 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 = flatten2d( x, [ 2, 2 ], true );
// returns [ 1, 3, 2, 4 ]

flatten2d.assign( x, shape, colexicographic, out, stride, offset )

Flattens a two-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 = flatten2d.assign( x, [ 2, 2 ], false, out, 1, 0 );
// returns <Float64Array>[ 1, 2, 3, 4 ]

var bool = ( y === out );
// returns true

y = flatten2d.assign( x, [ 2, 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 flatten2d = require( '@stdlib/array/base/flatten2d' );

var x = [
    [ 1, 2, 3, 4 ],
    [ 5, 6, 7, 8 ],
    [ 9, 10, 11, 12 ],
    [ 13, 14, 15, 16 ]
];

var out = flatten2d( x, [ 0, 0 ], false );
// returns []

out = flatten2d( x, [ 0, 0 ], true );
// returns []

out = flatten2d( x, [ 1, 1 ], false );
// returns [ 1 ]

out = flatten2d( x, [ 1, 1 ], true );
// returns [ 1 ]

out = flatten2d( x, [ 2, 2 ], false );
// returns [ 1, 2, 5, 6 ]

out = flatten2d( x, [ 2, 2 ], true );
// returns [ 1, 5, 2, 6 ]

out = flatten2d( x, [ 3, 3 ], false );
// returns [ 1, 2, 3, 5, 6, 7, 9, 10, 11 ]

out = flatten2d( x, [ 3, 3 ], true );
// returns [ 1, 5, 9, 2, 6, 10, 3, 7, 11 ]

out = flatten2d( x, [ 4, 4 ], false );
// returns [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ]

out = flatten2d( x, [ 4, 4 ], true );
// returns [ 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15, 4, 8, 12, 16 ]
Did you find this page helpful?