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, or undefined, 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 an ndarray).
  • 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]}'
Did you find this page helpful?