MultiSlice
Multi-slice constructor.
Usage
var MultiSlice = require( '@stdlib/slice/multi' );
MultiSlice( ...slice )
Returns a MultiSlice
instance.
var Slice = require( '@stdlib/slice/ctor' );
var s = new Slice( 0, 10 );
// returns <Slice>
var ms = new MultiSlice( 2, s, null );
// returns <MultiSlice>
The constructor accepts the following arguments:
- slice: a single-dimensional slice. May be either a
Slice
,null
,undefined
, or an integer.
Properties
MultiSlice.name
String value of the MultiSlice
constructor name.
var str = MultiSlice.name;
// returns 'MultiSlice'
MultiSlice.prototype.ndims
Read-only property returning the number of slice dimensions.
var Slice = require( '@stdlib/slice/ctor' );
var s = new Slice( 0, 10 );
// returns <Slice>
var ms = new MultiSlice( 2, s, null );
// returns <MultiSlice>
var ndims = ms.ndims;
// returns 3
MultiSlice.prototype.data
Read-only property returning the slice data.
var Slice = require( '@stdlib/slice/ctor' );
var s = new Slice( 0, 10 );
// returns <Slice>
var ms = new MultiSlice( 2, s, null );
// returns <MultiSlice>
var data = ms.data;
// returns [ 2, <Slice>, null ]
Methods
MultiSlice.prototype.toString()
Serializes a MultiSlice
as a string.
var Slice = require( '@stdlib/slice/ctor' );
var s = new Slice( 10 );
// returns <Slice>
var ms = new MultiSlice( 2, s, null );
// returns <MultiSlice>
var str = ms.toString();
// returns 'MultiSlice(2,Slice(null,10,null),null)'
MultiSlice.prototype.toJSON()
Serializes a MultiSlice
as a JSON object.
var Slice = require( '@stdlib/slice/ctor' );
var s = new Slice( 10 );
// returns <Slice>
var ms = new MultiSlice( 2, s, null );
// returns <MultiSlice>
var o = ms.toJSON();
// returns { 'type': 'MultiSlice', 'data': [ 2, { 'type': 'Slice', 'data': [ null, 10, null ] }, null ] }
JSON.stringify()
implicitly calls this method when stringifying a MultiSlice
instance.
Notes
- Slice arguments may be either integers,
null
, orundefined
, where a non-integer value indicates a slice parameter which should be determined based on the slice context (e.g., when used to index into anndarray
). - Multi-slice instances have no explicit functionality; however, they are used by
ndarray
and other packages for creating views into multi-dimensional data structures.
Examples
var S = require( '@stdlib/slice/ctor' );
var MultiSlice = require( '@stdlib/slice/multi' );
// Alias `undefined` for more concise expressions:
var _ = void 0;
// Create a 6-dimensional slice:
var s = new MultiSlice( S( 9, -10, -1 ), S( 2, _, 2 ), 2, S( 5, _, 2 ), 3, _ );
// returns <MultiSlice>
// Serialize the slice to a string:
var str = s.toString();
console.log( str );
// => 'MultiSlice(Slice(9,-10,-1),Slice(2,null,2),2,Slice(5,null,2),3,null)'
// Serialize the slice to JSON:
var o = s.toJSON();
console.log( JSON.stringify( o ) );
// => '{"type":"MultiSlice","data":[{"type":"Slice","data":[9,-10,-1]},{"type":"Slice","data":[2,null,2]},2,{"type":"Slice","data":[5,null,2]},3,null]}'