UNPKG

@stdlib/utils

Version:

Standard utilities.

1,427 lines (1,104 loc) 33.7 kB
{{alias}}( fields[, options] ) Returns a named typed tuple factory. Named tuples assign a property name, and thus a meaning, to each position in a tuple and allow for more readable, self-documenting code. Named typed tuples can be used wherever typed arrays are used, with the added benefit that they allow accessing fields by both field name and position index. Named typed tuples may be one the following data types: - float64: double-precision floating-point numbers (IEEE 754). - float32: single-precision floating-point numbers (IEEE 754). - int32: 32-bit two's complement signed integers. - uint32: 32-bit unsigned integers. - int16: 16-bit two's complement signed integers. - uint16: 16-bit unsigned integers. - int8: 8-bit two's complement signed integers. - uint8: 8-bit unsigned integers. - uint8c: 8-bit unsigned integers clamped to 0-255. Parameters ---------- fields: Array<string> Field (property) names. options: Object (optional) Function options. options.dtype: string (optional) Default tuple data type. If a data type is not provided to a named typed tuple factory, this option specifies the underlying tuple data type. Default: 'float64'. options.name: string (optional) Tuple name. Default: 'tuple'. Returns ------- factory: Function Named typed tuple factory. Examples -------- > var opts = {}; > opts.name = 'Point'; > var factory = {{alias}}( [ 'x', 'y' ], opts ); > var tuple = factory(); factory() Returns a named typed tuple of the default data type. Returns ------- tuple: TypedArray Named typed tuple. Examples -------- > var factory = {{alias}}( [ 'x', 'y' ] ); > p = factory(); > p.x 0.0 > p.y 0.0 > p[ 0 ] 0.0 > p[ 1 ] 0.0 factory( dtype ) Returns a named typed tuple of the specified data type. Parameters ---------- dtype: string Tuple data type. Returns ------- tuple: TypedArray Named typed tuple. Examples -------- > var factory = {{alias}}( [ 'x', 'y' ] ); > p = factory( 'int32' ); > p.x 0 > p.y 0 > p[ 0 ] 0 > p[ 1 ] 0 factory( typedarray[, dtype] ) Creates a named typed tuple from a typed array. Parameters ---------- typedarray: TypedArray Typed array from which to generate a named typed tuple. dtype: string (optional) Tuple data type. Returns ------- tuple: TypedArray Named typed tuple. Examples -------- > var factory = {{alias}}( [ 'x', 'y' ] ); > p = factory( {{alias:@stdlib/array/float64}}[ 1.0, -1.0 ] ); > p.x 1.0 > p.y -1.0 > p[ 0 ] 1.0 > p[ 1 ] -1.0 factory( obj[, dtype] ) Creates a named typed tuple from an array-like object or iterable. Parameters ---------- obj: Object Array-like object or iterable from which to generate a named typed tuple. dtype: string (optional) Tuple data type. Returns ------- tuple: TypedArray Named typed tuple. Examples -------- > var factory = {{alias}}( [ 'x', 'y' ] ); > p = factory( [ 1, -1 ], 'int32' ); > p.x 1 > p.y -1 > p[ 0 ] 1 > p[ 1 ] -1 factory( buffer[, byteOffset][, dtype] ) Returns a named typed tuple view of an ArrayBuffer. The view length equals the number of tuple fields. Parameters ---------- buffer: ArrayBuffer Underlying ArrayBuffer. byteOffset: integer (optional) Integer byte offset specifying the location of the first tuple element. Default: 0. dtype: string (optional) Tuple data type. Returns ------- tuple: TypedArray Named typed tuple. Examples -------- > var factory = {{alias}}( [ 'x', 'y' ] ); > var buf = new {{alias:@stdlib/array/buffer}}( 16 ); > var p = factory( buf, 4, 'float32' ); > p.x 0.0 > p.y 0.0 > p[ 0 ] 0.0 > p[ 1 ] 0.0 factory.from( src[, map[, thisArg]] ) Creates a new named typed tuple from an array-like object or an iterable. A callback is provided the following arguments: - value: source value. - index: source index. - field: tuple field. Parameters ---------- src: ArrayLike|Iterable Source of tuple elements. map: Function (optional) Callback to invoke for each source element. thisArg: Any (optional) Callback execution context. Returns ------- tuple: TypedArray Named typed tuple. Examples -------- > var factory = {{alias}}( [ 'x', 'y' ] ); > function mapFcn( v ) { return v * 2.0; }; > var p = factory.from( [ 1.0, -1.0 ], mapFcn ); > p.x 2.0 > p.y -2.0 > p[ 0 ] 2.0 > p[ 1 ] -2.0 factory.fromObject( obj[, map[, thisArg]] ) Creates a new named typed tuple from an object containing tuple fields. A callback is provided the following arguments: - value: source object tuple field value. - field: source object tuple field name. Parameters ---------- obj: Object Source object. map: Function (optional) Callback to invoke for each source object tuple field. thisArg: Any (optional) Callback execution context. Returns ------- tuple: TypedArray Named typed tuple. Examples -------- > var factory = {{alias}}( [ 'x', 'y' ] ); > var p = factory.fromObject( { 'x': 2.0, 'y': -2.0 } ); > p.x 2.0 > p.y -2.0 > p[ 0 ] 2.0 > p[ 1 ] -2.0 factory.of( element0[, element1[, ...elementN]] ) Creates a new named typed tuple from a variable number of arguments. The number of arguments *must* equal the number of tuple fields. Parameters ---------- element0: number Tuple element. element1: number (optional) Tuple element. elementN: number (optional) Tuple elements. Returns ------- tuple: TypedArray Named typed tuple. Examples -------- > var factory = {{alias}}( [ 'x', 'y' ] ); > var p = factory.of( 2.0, -2.0 ); > p.x 2.0 > p.y -2.0 > p[ 0 ] 2.0 > p[ 1 ] -2.0 tuple.BYTES_PER_ELEMENT Size (in bytes) of each tuple element. Examples -------- > var factory = {{alias}}( [ 'x', 'y' ] ); > var p = factory( [ 1.0, -1.0 ] ); > p.BYTES_PER_ELEMENT 8 tuple.buffer Pointer to the underlying data buffer. Examples -------- > var factory = {{alias}}( [ 'x', 'y' ] ); > var p = factory( [ 1.0, -1.0 ] ); > p.buffer <ArrayBuffer> tuple.byteLength Length (in bytes) of the tuple. Examples -------- > var factory = {{alias}}( [ 'x', 'y' ] ); > var p = factory( [ 1.0, -1.0 ] ); > p.byteLength 16 tuple.byteOffset Offset (in bytes) of a tuple from the start of its underlying ArrayBuffer. Examples -------- > var factory = {{alias}}( [ 'x', 'y' ] ); > var p = factory( [ 1.0, -1.0 ] ); > p.byteOffset 0 tuple.length Tuple length (i.e., number of elements). Examples -------- > var factory = {{alias}}( [ 'x', 'y' ] ); > var p = factory( [ 1.0, -1.0 ] ); > p.length 2 tuple.name Tuple name. Examples -------- > var opts = { 'name': 'Point' }; > var factory = {{alias}}( [ 'x', 'y' ], opts ); > var p = factory( [ 1.0, -1.0 ] ); > p.name 'Point' tuple.fields Returns the list of tuple fields. Examples -------- > var factory = {{alias}}( [ 'x', 'y' ] ); > var p = factory( [ 1.0, -1.0 ] ); > p.fields [ 'x', 'y' ] tuple.orderedFields Returns the list of tuple fields in index order. Examples -------- > var factory = {{alias}}( [ 'x', 'y' ] ); > var p = factory( [ 1.0, -1.0 ] ); > p[ 0 ] 1.0 > p.sort(); > p[ 0 ] -1.0 > p.fields [ 'x', 'y' ] > p.orderedFields [ 'y', 'x' ] tuple.copyWithin( target, start[, end] ) Copies a sequence of elements within the tuple starting at `start` and ending at `end` (non-inclusive) to the position starting at `target`. Parameters ---------- target: integer Target start index position. start: integer Source start index position. end: integer (optional) Source end index position. Default: tuple.length. Returns ------- tuple: TypedArray Modified tuple. Examples -------- > var factory = {{alias}}( [ 'x', 'y', 'z', 'w', 'v' ] ); > var p = factory( [ 2.0, -2.0, 1.0, -1.0, 1.0 ] ); > p.copyWithin( 3, 0, 2 ); > p.w 2.0 > p.v -2.0 tuple.entries() Returns an iterator for iterating over tuple key-value pairs. Returns ------- iter: Iterator Iterator for iterating over tuple key-value pairs. Examples -------- > var factory = {{alias}}( [ 'x', 'y' ] ); > var p = factory( [ 1.0, -1.0 ] ); > it = p.entries(); > it.next().value [ 0, 'x', 1.0 ] > it.next().value [ 1, 'y', -1.0 ] > it.next().done true tuple.every( predicate[, thisArg] ) Tests whether all tuple elements pass a test implemented by a predicate function. A predicate function is provided the following arguments: - value: tuple element. - index: tuple index. - field: tuple field name. - tuple: tuple on which the method is invoked. Parameters ---------- predicate: Function Predicate function which tests tuple elements. If a predicate function returns a truthy value, a tuple element passes; otherwise, a tuple element fails. thisArg: Any (optional) Callback execution context. Returns ------- bool: boolean Boolean indicating whether all tuple elements pass. Examples -------- > var factory = {{alias}}( [ 'x', 'y' ] ); > var p = factory( [ 1.0, -1.0 ] ); > function predicate( v ) { return ( v >= 0.0 ); }; > p.every( predicate ) false tuple.fieldOf( searchElement[, fromIndex] ) Returns the field of the first tuple element strictly equal to a search element. The method does not distinguish between signed and unsigned zero. If unable to locate a search element, the method returns `undefined`. Parameters ---------- searchElement: number Search element. fromIndex: integer (optional) Tuple index from which to begin searching. If provided a negative value, the method resolves the start index relative to the last tuple element. Default: 0. Returns ------- field: string|undefined Tuple field. Examples -------- > var factory = {{alias}}( [ 'x', 'y', 'z' ] ); > var p = factory( [ 1.0, 0.0, -1.0 ] ); > var f = p.fieldOf( 2.0 ) undefined > f = p.fieldOf( -1.0 ) 'z' tuple.fill( value[, start[, end]] ) Fills a tuple from a start index to an end index (non-inclusive) with a provided value. Parameters ---------- value: number Fill value. start: integer (optional) Start index. If less than zero, the start index is resolved relative to the last tuple element. Default: 0. end: integer (optional) End index (non-inclusive). If less than zero, the end index is resolved relative to the last tuple element. Default: tuple.length. Returns ------- tuple: TypedArray Modified tuple. Examples -------- > var factory = {{alias}}( [ 'x', 'y' ] ); > var p = factory( [ 1.0, -1.0 ] ); > p.fill( 2.0 ); > p.x 2.0 > p.y 2.0 tuple.filter( predicate[, thisArg] ) Creates a new tuple which includes those elements for which a predicate function returns a truthy value. A predicate function is provided the following arguments: - value: tuple element. - index: tuple index. - field: tuple field name. - tuple: tuple on which the method is invoked. The returned tuple has the same data type as the host tuple. If a predicate function does not return a truthy value for any tuple element, the method returns `null`. Parameters ---------- predicate: Function Predicate function which filters tuple elements. If a predicate function returns a truthy value, a tuple element is included in the output tuple; otherwise, a tuple element is not included in the output tuple. thisArg: Any (optional) Callback execution context. Returns ------- tuple: TypedArray A new named typed tuple. Examples -------- > var factory = {{alias}}( [ 'x', 'y', 'z' ] ); > var p1 = factory( [ 1.0, 0.0, -1.0 ] ); > function predicate( v ) { return ( v >= 0.0 ); }; > var p2 = p1.filter( predicate ); > p2.fields [ 'x', 'y' ] tuple.find( predicate[, thisArg] ) Returns the first tuple element for which a provided predicate function returns a truthy value. A predicate function is provided the following arguments: - value: tuple element. - index: tuple index. - field: tuple field name. - tuple: tuple on which the method is invoked. If a predicate function never returns a truthy value, the method returns `undefined`. Parameters ---------- predicate: Function Predicate function which tests tuple elements. thisArg: Any (optional) Callback execution context. Returns ------- value: number|undefined Tuple element. Examples -------- > var factory = {{alias}}( [ 'x', 'y', 'z' ] ); > var p = factory( [ 1.0, 0.0, -1.0 ] ); > function predicate( v ) { return ( v < 0.0 ); }; > var v = p.find( predicate ) -1.0 tuple.findField( predicate[, thisArg] ) Returns the field of the first tuple element for which a provided predicate function returns a truthy value. A predicate function is provided the following arguments: - value: tuple element. - index: tuple index. - field: tuple field name. - tuple: tuple on which the method is invoked. If a predicate function never returns a truthy value, the method returns `undefined`. Parameters ---------- predicate: Function Predicate function which tests tuple elements. thisArg: Any (optional) Callback execution context. Returns ------- field: string|undefined Tuple field. Examples -------- > var factory = {{alias}}( [ 'x', 'y', 'z' ] ); > var p = factory( [ 1.0, 0.0, -1.0 ] ); > function predicate( v ) { return ( v < 0.0 ); }; > var f = p.findField( predicate ) 'z' tuple.findIndex( predicate[, thisArg] ) Returns the index of the first tuple element for which a provided predicate function returns a truthy value. A predicate function is provided the following arguments: - value: tuple element. - index: tuple index. - field: tuple field name. - tuple: tuple on which the method is invoked. If a predicate function never returns a truthy value, the method returns `-1`. Parameters ---------- predicate: Function Predicate function which tests tuple elements. thisArg: Any (optional) Callback execution context. Returns ------- idx: integer Tuple index. Examples -------- > var factory = {{alias}}( [ 'x', 'y', 'z' ] ); > var p = factory( [ 1.0, 0.0, -1.0 ] ); > function predicate( v ) { return ( v < 0.0 ); }; > var idx = p.findIndex( predicate ) 2 tuple.forEach( fcn[, thisArg] ) Invokes a callback for each tuple element. A provided function is provided the following arguments: - value: tuple element. - index: tuple index. - field: tuple field name. - tuple: tuple on which the method is invoked. Parameters ---------- fcn: Function Function to invoke for each tuple element. thisArg: Any (optional) Callback execution context. Examples -------- > var factory = {{alias}}( [ 'x', 'y', 'z' ] ); > var p = factory( [ 1, 0, -1 ], 'int32' ); > var str = ' '; > function fcn( v, i, f ) { str += f + '=' + v + ' '; }; > p.forEach( fcn ); > str ' x=1 y=0 z=-1 ' tuple.includes( searchElement[, fromIndex] ) Returns a boolean indicating whether a tuple includes a search element. The method does not distinguish between signed and unsigned zero. Parameters ---------- searchElement: number Search element. fromIndex: integer (optional) Tuple index from which to begin searching. If provided a negative value, the method resolves the start index relative to the last tuple element. Default: 0. Returns ------- bool: boolean Boolean indicating whether a tuple includes a search element. Examples -------- > var factory = {{alias}}( [ 'x', 'y', 'z' ] ); > var p = factory( [ 1.0, 0.0, -1.0 ] ); > var bool = p.includes( 2.0 ) false > bool = p.includes( -1.0 ) true tuple.indexOf( searchElement[, fromIndex] ) Returns the index of the first tuple element strictly equal to a search element. The method does not distinguish between signed and unsigned zero. If unable to locate a search element, the method returns `-1`. Parameters ---------- searchElement: number Search element. fromIndex: integer (optional) Tuple index from which to begin searching. If provided a negative value, the method resolves the start index relative to the last tuple element. Default: 0. Returns ------- idx: integer Tuple index. Examples -------- > var factory = {{alias}}( [ 'x', 'y', 'z' ] ); > var p = factory( [ 1.0, 0.0, -1.0 ] ); > var idx = p.indexOf( 2.0 ) -1 > idx = p.indexOf( -1.0 ) 2 tuple.ind2key( ind ) Converts a tuple index to a field name. If provided an out-of-bounds index, the method returns `undefined`. Parameters ---------- ind: integer Tuple index. If less than zero, the method resolves the index relative to the last tuple element. Returns ------- field: string|undefined Field name. Examples -------- > var factory = {{alias}}( [ 'x', 'y', 'z' ] ); > var p = factory( [ 1.0, 0.0, -1.0 ] ); > p.ind2key( 1 ) 'y' > p.ind2key( 100 ) undefined tuple.join( [separator] ) Serializes a tuple by joining all tuple elements as a string. Parameters ---------- separator: string (optional) String delineating tuple elements. Default: ','. Returns ------- str: string Tuple serialized as a string. Examples -------- > var factory = {{alias}}( [ 'x', 'y', 'z' ] ); > var p = factory( [ 1, 0, -1 ], 'int32' ); > p.join( '|' ) '1|0|-1' tuple.keys() Returns an iterator for iterating over tuple keys. Returns ------- iter: Iterator Iterator for iterating over tuple keys. Examples -------- > var factory = {{alias}}( [ 'x', 'y' ] ); > var p = factory( [ 1.0, -1.0 ] ); > it = p.keys(); > it.next().value [ 0, 'x' ] > it.next().value [ 1, 'y' ] > it.next().done true tuple.key2ind( field ) Converts a field name to a tuple index. If provided an unknown field name, the method returns `-1`. Parameters ---------- field: string Tuple field name. Returns ------- idx: integer Tuple index. Examples -------- > var factory = {{alias}}( [ 'x', 'y', 'z' ] ); > var p = factory( [ 1.0, 0.0, -1.0 ] ); > p.key2ind( 'y' ) 1 tuple.lastFieldOf( searchElement[, fromIndex] ) Returns the field of the last tuple element strictly equal to a search element. The method iterates from the last tuple element to the first tuple element. The method does not distinguish between signed and unsigned zero. If unable to locate a search element, the method returns `undefined`. Parameters ---------- searchElement: number Search element. fromIndex: integer (optional) Tuple index from which to begin searching. If provided a negative value, the method resolves the start index relative to the last tuple element. Default: -1. Returns ------- field: string|undefined Tuple field. Examples -------- > var factory = {{alias}}( [ 'x', 'y', 'z', 'w', 'v' ] ); > var p = factory( [ 1.0, 0.0, -1.0, 0.0, 1.0 ] ); > var f = p.lastFieldOf( 2.0 ) undefined > f = p.lastFieldOf( 0.0 ) 'w' tuple.lastIndexOf( searchElement[, fromIndex] ) Returns the index of the last tuple element strictly equal to a search element. The method iterates from the last tuple element to the first tuple element. The method does not distinguish between signed and unsigned zero. If unable to locate a search element, the method returns `-1`. Parameters ---------- searchElement: number Search element. fromIndex: integer (optional) Tuple index from which to begin searching. If provided a negative value, the method resolves the start index relative to the last tuple element. Default: -1. Returns ------- idx: integer Tuple index. Examples -------- > var factory = {{alias}}( [ 'x', 'y', 'z', 'w', 'v' ] ); > var p = factory( [ 1.0, 0.0, -1.0, 0.0, 1.0 ] ); > var idx = p.lastIndexOf( 2.0 ) -1 > idx = p.lastIndexOf( 0.0 ) 3 tuple.map( fcn[, thisArg] ) Maps each tuple element to an element in a new tuple. A provided function is provided the following arguments: - value: tuple element. - index: tuple index. - field: tuple field name. - tuple: tuple on which the method is invoked. The returned tuple has the same data type as the host tuple. Parameters ---------- fcn: Function Function which maps tuple elements to elements in the new tuple. thisArg: Any (optional) Callback execution context. Returns ------- tuple: TypedArray A new named typed tuple. Examples -------- > var factory = {{alias}}( [ 'x', 'y', 'z' ] ); > var p1 = factory( [ 1.0, 0.0, -1.0 ] ); > function fcn( v ) { return v * 2.0; }; > var p2 = p1.map( fcn ); > p2.x 2.0 > p2.y 0.0 > p2.z -2.0 tuple.reduce( fcn[, initialValue] ) Applies a function against an accumulator and each element in a tuple and returns the accumulated result. The provided function is provided the following arguments: - acc: accumulated result. - value: current tuple element. - index: index of the current tuple element. - field: field name corresponding to the current tuple element. - tuple: tuple on which the method is invoked. If provided an initial value, the method invokes a provided function with the initial value as the first argument and the first tuple element as the second argument. If not provided an initial value, the method invokes a provided function with the first tuple element as the first argument and the second tuple element as the second argument. Parameters ---------- fcn: Function Function to apply. initialValue: Any (optional) Initial accumulation value. Returns ------- out: Any Accumulated result. Examples -------- > var factory = {{alias}}( [ 'x', 'y', 'z' ] ); > var p = factory( [ 1.0, 0.0, -1.0 ] ); > function fcn( acc, v ) { return acc + (v*v); }; > var v = p.reduce( fcn, 0.0 ) 2.0 tuple.reduceRight( fcn[, initialValue] ) Applies a function against an accumulator and each element in a tuple and returns the accumulated result, iterating from right to left. The provided function is provided the following arguments: - acc: accumulated result. - value: current tuple element. - index: index of the current tuple element. - field: field name corresponding to the current tuple element. - tuple: tuple on which the method is invoked. If provided an initial value, the method invokes a provided function with the initial value as the first argument and the last tuple element as the second argument. If not provided an initial value, the method invokes a provided function with the last tuple element as the first argument and the second-to-last tuple element as the second argument. Parameters ---------- fcn: Function Function to apply. initialValue: Any (optional) Initial accumulation value. Returns ------- out: Any Accumulated result. Examples -------- > var factory = {{alias}}( [ 'x', 'y', 'z' ] ); > var p = factory( [ 1.0, 0.0, -1.0 ] ); > function fcn( acc, v ) { return acc + (v*v); }; > var v = p.reduceRight( fcn, 0.0 ) 2.0 tuple.reverse() Reverses a tuple *in-place*. This method mutates the tuple on which the method is invoked. Returns ------- tuple: TypedArray Modified tuple. Examples -------- > var factory = {{alias}}( [ 'x', 'y', 'z' ] ); > var p = factory( [ 1.0, 0.0, -1.0 ] ); > p[ 0 ] 1.0 > p.x 1.0 > p.reverse(); > p[ 0 ] -1.0 > p.x 1.0 tuple.set( arr[, offset] ) Sets tuple elements. Parameters ---------- arr: ArrayLike Source array containing tuple values to set. offset: integer (optional) Tuple index at which to start writing values. Default: 0. Examples -------- > var factory = {{alias}}( [ 'x', 'y', 'z' ] ); > var p = factory( [ 1.0, 0.0, -1.0 ] ); > p[ 1 ] 0.0 > p.y 0.0 > p.set( [ -2.0, 2.0 ], 1 ); > p[ 1 ] -2.0 > p.y -2.0 > p[ 2 ] 2.0 > p.z 2.0 tuple.slice( [begin[, end]] ) Copies tuple elements to a new tuple with the same underlying data type as the host tuple. If the method is unable to resolve indices to a non-empty tuple subsequence, the method returns `null`. Parameters ---------- begin: integer (optional) Start element index (inclusive). If less than zero, the start index is resolved relative to the last tuple element. Default: 0. end: integer (optional) End element index (exclusive). If less than zero, the end index is resolved relative to the last tuple element. Default: tuple.length. Returns ------- tuple: TypedArray A new named typed tuple. Examples -------- > var factory = {{alias}}( [ 'x', 'y', 'z' ] ); > var p1 = factory( [ 1.0, 0.0, -1.0 ] ); > p1.fields [ 'x', 'y', 'z' ] > var p2 = p1.slice( 1 ); > p2.fields [ 'y', 'z' ] > p2.y 0.0 > p2.z -1.0 tuple.some( predicate[, thisArg] ) Tests whether at least one tuple element passes a test implemented by a predicate function. A predicate function is provided the following arguments: - value: tuple element. - index: tuple index. - field: tuple field name. - tuple: tuple on which the method is invoked. Parameters ---------- predicate: Function Predicate function which tests tuple elements. If a predicate function returns a truthy value, a tuple element passes; otherwise, a tuple element fails. thisArg: Any (optional) Callback execution context. Returns ------- bool: boolean Boolean indicating whether at least one tuple element passes. Examples -------- > var factory = {{alias}}( [ 'x', 'y' ] ); > var p = factory( [ 1.0, -1.0 ] ); > function predicate( v ) { return ( v < 0.0 ); }; > p.some( predicate ) true tuple.sort( [compareFunction] ) Sorts a tuple *in-place*. Sorting a tuple does *not* affect field assignments. Accessing a tuple field before and after sorting will always return the same tuple element. However, this behavior is generally not true when accessing tuple elements according to tuple index. In summary, sorting affects index order but not field assignments. The comparison function is provided two tuple elements per invocation: `a` and `b`. The comparison function return value determines the sort order as follows: - If the comparison function returns a value less than zero, then the method sorts `a` to an index lower than `b` (i.e., `a` should come *before* `b`). - If the comparison function returns a value greater than zero, then the method sorts `a` to an index higher than `b` (i.e., `b` should come *before* `a`). - If the comparison function returns zero, then the relative order of `a` and `b` should remain unchanged. This method mutates the tuple on which the method is invoked. Parameters ---------- compareFunction: Function (optional) Function which specifies the sort order. The default sort order is ascending order. Returns ------- tuple: TypedArray Modified tuple. Examples -------- > var factory = {{alias}}( [ 'x', 'y', 'z', 'w', 'v' ] ); > var p = factory( [ 1.0, -1.0, 0.0, 2.0, -2.0 ] ); > p.sort(); > p.orderedFields [ 'v', 'y', 'z', 'x', 'w' ] > p[ 0 ] -2.0 > p.x 1.0 > p[ 1 ] -1.0 > p.y -1.0 > p.key2ind( 'x' ) 3 tuple.subarray( [begin[, end]] ) Creates a new typed array over the same underlying ArrayBuffer and with the same underlying data type as the host tuple. If the method is unable to resolve indices to a non-empty tuple subsequence, the method returns an empty typed array. Parameters ---------- begin: integer (optional) Start element index (inclusive). If less than zero, the start index is resolved relative to the last tuple element. Default: 0. end: integer (optional) End element index (exclusive). If less than zero, the end index is resolved relative to the last tuple element. Default: tuple.length. Returns ------- arr: TypedArray A new typed array view. Examples -------- > var factory = {{alias}}( [ 'x', 'y', 'z', 'w', 'v' ] ); > var p = factory( [ 1.0, -1.0, 0.0, 2.0, -2.0 ] ); > var arr = p.subarray( 2 ) <Float64Array>[ 0.0, 2.0, -2.0 ] > arr.length 3 tuple.subtuple( [begin[, end]] ) Creates a new named typed tuple over the same underlying ArrayBuffer and with the same underlying data type as the host tuple. If the function is unable to resolve indices to a non-empty tuple subsequence, the function returns `null`. Parameters ---------- begin: integer (optional) Start element index (inclusive). If less than zero, the start index is resolved relative to the last tuple element. Default: 0. end: integer (optional) End element index (exclusive). If less than zero, the end index is resolved relative to the last tuple element. Default: tuple.length. Returns ------- tuple: TypedArray|null A new named typed tuple. Examples -------- > var factory = {{alias}}( [ 'x', 'y', 'z', 'w', 'v' ] ); > var p1 = factory( [ 1.0, -1.0, 0.0, 2.0, -2.0 ] ); > var p2 = p1.subtuple( 2 ); > p2.fields [ 'z', 'w', 'v' ] > p2[ 0 ] 0.0 > p2.z 0.0 > p2[ 1 ] 2.0 > p2.w 2.0 > p2[ 2 ] -2.0 > p2.v -2.0 > p2.length 3 tuple.toJSON() Serializes a tuple as JSON. Returns ------- obj: Object A tuple JSON representation. Examples -------- > var factory = {{alias}}( [ 'x', 'y', 'z' ] ); > var p = factory( [ 1.0, -1.0, 0.0 ] ); > p.toJSON() { 'x': 1.0, 'y': -1.0, 'z': 0.0 } tuple.toLocaleString( [locales[, options]] ) Serializes a tuple as a locale-specific string. Parameters ---------- locales: string|Array<string> (optional) A BCP 47 language tag, or an array of such tags. options: Object (optional) Options. Returns ------- str: string A typed array string representation. Examples -------- > var factory = {{alias}}( [ 'x', 'y', 'z' ] ); > var p = factory( [ 1.0, -1.0, 0.0 ], 'int32' ); > p.toLocaleString() '1,-1,0' tuple.toString() Serializes a tuple as a string. Returns ------- str: string A tuple string representation. Examples -------- > opts = { 'name': 'Point' }; > var factory = {{alias}}( [ 'x', 'y', 'z' ], opts ); > var p = factory( [ 1.0, -1.0, 0.0 ] ); > p.toString() 'Point(x=1, y=-1, z=0)' tuple.values() Returns an iterator for iterating over tuple elements. Returns ------- iter: Iterator Iterator for iterating over tuple elements. Examples -------- > var factory = {{alias}}( [ 'x', 'y' ] ); > var p = factory( [ 1.0, -1.0 ] ); > it = p.values(); > it.next().value 1.0 > it.next().value -1.0 > it.next().done true See Also --------