Uint8ClampedArray
Typed array constructor which returns a typed array representing an array of 8-bit unsigned integers in the platform byte order clamped to 0-255.
Usage
var Uint8ClampedArray = require( '@stdlib/array/uint8c' );
Uint8ClampedArray()
A typed array constructor which returns a typed array representing an array of 8-bit unsigned integers in the platform byte order clamped to 0-255
.
var arr = new Uint8ClampedArray();
// returns <Uint8ClampedArray>
Uint8ClampedArray( length )
Returns a typed array having a specified length.
var arr = new Uint8ClampedArray( 5 );
// returns <Uint8ClampedArray>[ 0, 0, 0, 0, 0 ]
Uint8ClampedArray( typedarray )
Creates a typed array from another typed array.
var Float32Array = require( '@stdlib/array/float32' );
var arr1 = new Float32Array( [ 5.0, 5.0, 5.0 ] );
var arr2 = new Uint8ClampedArray( arr1 );
// returns <Uint8ClampedArray>[ 5, 5, 5 ]
Uint8ClampedArray( obj )
Creates a typed array from an array-like object
or iterable.
var arr = new Uint8ClampedArray( [ 5.0, 5.0, 5.0 ] );
// returns <Uint8ClampedArray>[ 5, 5, 5 ]
Uint8ClampedArray( buffer[, byteOffset[, length]] )
Returns a typed array view of an ArrayBuffer
.
var ArrayBuffer = require( '@stdlib/array/buffer' );
var buf = new ArrayBuffer( 4 );
var arr = new Uint8ClampedArray( buf, 0, 4 );
// returns <Uint8ClampedArray>[ 0, 0, 0, 0 ]
Properties
Uint8ClampedArray.BYTES_PER_ELEMENT
Number of bytes per view element.
var nbytes = Uint8ClampedArray.BYTES_PER_ELEMENT;
// returns 1
Uint8ClampedArray.name
Typed array constructor name.
var str = Uint8ClampedArray.name;
// returns 'Uint8ClampedArray'
Uint8ClampedArray.prototype.buffer
Read-only property which returns the ArrayBuffer
referenced by the typed array.
var arr = new Uint8ClampedArray( 5 );
var buf = arr.buffer;
// returns <ArrayBuffer>
Uint8ClampedArray.prototype.byteLength
Read-only property which returns the length (in bytes) of the typed array.
var arr = new Uint8ClampedArray( 5 );
var byteLength = arr.byteLength;
// returns 5
Uint8ClampedArray.prototype.byteOffset
Read-only property which returns the offset (in bytes) of the typed array from the start of its ArrayBuffer
.
var arr = new Uint8ClampedArray( 5 );
var byteOffset = arr.byteOffset;
// returns 0
Uint8ClampedArray.prototype.BYTES_PER_ELEMENT
Number of bytes per view element.
var arr = new Uint8ClampedArray( 5 );
var nbytes = arr.BYTES_PER_ELEMENT;
// returns 1
Uint8ClampedArray.prototype.length
Read-only property which returns the number of view elements.
var arr = new Uint8ClampedArray( 5 );
var len = arr.length;
// returns 5
Methods
Uint8ClampedArray.from( src[, map[, thisArg]] )
Creates a new typed array from an array-like object
or an iterable.
var arr = Uint8ClampedArray.from( [ 1, 2 ] );
// returns <Uint8ClampedArray>[ 1, 2 ]
To invoke a function for each src
value, provide a callback function.
function mapFcn( v ) {
return v * 2;
}
var arr = Uint8ClampedArray.from( [ 1, 2 ], mapFcn );
// returns <Uint8ClampedArray>[ 2, 4 ]
A callback function is provided two arguments:
value
: source valueindex
: source index
To set the callback execution context, provide a thisArg
.
function mapFcn( v ) {
this.count += 1;
return v * 2;
}
var ctx = {
'count': 0
};
var arr = Uint8ClampedArray.from( [ 1, 2 ], mapFcn, ctx );
// returns <Uint8ClampedArray>[ 2, 4 ]
var n = ctx.count;
// returns 2
Uint8ClampedArray.of( element0[, element1[, ...elementN]] )
Creates a new typed array from a variable number of arguments.
var arr = Uint8ClampedArray.of( 1, 2 );
// returns <Uint8ClampedArray>[ 1, 2 ]
Uint8ClampedArray.prototype.copyWithin( target, start[, end] )
Copies a sequence of elements within an array starting at start
and ending at end
(non-inclusive) to the position starting at target
.
var arr = new Uint8ClampedArray( [ 1, 2, 3, 4, 5 ] );
// Copy the last two elements to the first two elements:
arr.copyWithin( 0, 3 );
var v = arr[ 0 ];
// returns 4
v = arr[ 1 ];
// returns 5
By default, end
equals the number of array elements (i.e., one more than the last array index). To limit the sequence length, provide an end
argument.
var arr = new Uint8ClampedArray( [ 1, 2, 3, 4, 5 ] );
// Copy the first two elements to the last two elements:
arr.copyWithin( 3, 0, 2 );
var v = arr[ 3 ];
// returns 1
v = arr[ 4 ];
// returns 2
When a target
, start
, and/or end
index is negative, the respective index is determined relative to the last array element. The following example achieves the same behavior as the previous example:
var arr = new Uint8ClampedArray( [ 1, 2, 3, 4, 5 ] );
// Copy the first two elements to the last two elements:
arr.copyWithin( -2, -5, -3 );
var v = arr[ 3 ];
// returns 1
v = arr[ 4 ];
// returns 2
Uint8ClampedArray.prototype.entries()
Returns an iterator for iterating over array key-value pairs.
var arr = new Uint8ClampedArray( [ 1, 2 ] );
// Create an iterator:
var it = arr.entries();
// Iterate over key-value pairs...
var v = it.next().value;
// returns [ 0, 1 ]
v = it.next().value;
// returns [ 1, 2 ]
var bool = it.next().done;
// returns true
Uint8ClampedArray.prototype.every( predicate[, thisArg] )
Tests whether all array elements pass a test implemented by a predicate
function.
function predicate( v ) {
return ( v <= 1 );
}
var arr = new Uint8ClampedArray( [ 1, 2 ] );
var bool = arr.every( predicate );
// returns false
A predicate
function is provided three arguments:
value
: array elementindex
: array indexarr
: array on which the method is invoked
To set the callback execution context, provide a thisArg
.
function predicate( v ) {
this.count += 1;
return ( v >= 1 );
}
var ctx = {
'count': 0
};
var arr = new Uint8ClampedArray( [ 1, 2 ] );
var bool = arr.every( predicate, ctx );
// returns true
var n = ctx.count;
// returns 2
Uint8ClampedArray.prototype.fill( value[, start[, end]] )
Fills an array from a start
index to an end
index (non-inclusive) with a provided value
.
var arr = new Uint8ClampedArray( 2 );
// Set all array elements to the same value:
arr.fill( 2 );
var v = arr[ 0 ];
// returns 2
v = arr[ 1 ];
// returns 2
// Set all array elements starting from the first index to the same value:
arr.fill( 3, 1 );
v = arr[ 0 ];
// returns 2
v = arr[ 1 ];
// returns 3
// Set all array elements, except the last element, to the same value:
arr.fill( 4, 0, arr.length-1 );
v = arr[ 0 ];
// returns 4
v = arr[ 1 ];
// returns 3
When a start
and/or end
index is negative, the respective index is determined relative to the last array element.
var arr = new Uint8ClampedArray( 2 );
// Set all array elements, except the last element, to the same value:
arr.fill( 2, -arr.length, -1 );
var v = arr[ 0 ];
// returns 2
v = arr[ 1 ];
// returns 0
Uint8ClampedArray.prototype.filter( predicate[, thisArg] )
Creates a new array (of the same data type as the host array) which includes those elements for which a predicate
function returns a truthy value.
function predicate( v ) {
return ( v >= 2 );
}
var arr1 = new Uint8ClampedArray( [ 1, 2, 3 ] );
var arr2 = arr1.filter( predicate );
// returns <Uint8ClampedArray>[ 2, 3 ]
If a predicate
function does not return a truthy value for any array element, the method returns an empty array.
function predicate( v ) {
return ( v >= 10 );
}
var arr1 = new Uint8ClampedArray( [ 1, 2, 3 ] );
var arr2 = arr1.filter( predicate );
// returns <Uint8ClampedArray>[]
A predicate
function is provided three arguments:
value
: array elementindex
: array indexarr
: array on which the method is invoked
To set the callback execution context, provide a thisArg
.
function predicate( v ) {
this.count += 1;
return ( v >= 2 );
}
var ctx = {
'count': 0
};
var arr1 = new Uint8ClampedArray( [ 1, 2, 3 ] );
var arr2 = arr1.filter( predicate, ctx );
var n = ctx.count;
// returns 3
Uint8ClampedArray.prototype.find( predicate[, thisArg] )
Returns the first array element for which a provided predicate
function returns a truthy value.
function predicate( v ) {
return ( v > 2 );
}
var arr = new Uint8ClampedArray( [ 1, 2, 3 ] );
var v = arr.find( predicate );
// returns 3
If a predicate
function does not return a truthy value for any array element, the method returns undefined
.
function predicate( v ) {
return ( v < 1 );
}
var arr = new Uint8ClampedArray( [ 1, 2, 3 ] );
var v = arr.find( predicate );
// returns undefined
A predicate
function is provided three arguments:
value
: array elementindex
: array indexarr
: array on which the method is invoked
To set the callback execution context, provide a thisArg
.
function predicate( v ) {
this.count += 1;
return ( v > 2 );
}
var ctx = {
'count': 0
};
var arr = new Uint8ClampedArray( [ 1, 2, 3 ] );
var v = arr.find( predicate, ctx );
// returns 3
var n = ctx.count;
// returns 3
Uint8ClampedArray.prototype.findIndex( predicate[, thisArg] )
Returns the index of the first array element for which a provided predicate
function returns a truthy value.
function predicate( v ) {
return ( v >= 3 );
}
var arr = new Uint8ClampedArray( [ 1, 2, 3 ] );
var idx = arr.findIndex( predicate );
// returns 2
If a predicate
function does not return a truthy value for any array element, the method returns -1
.
function predicate( v ) {
return ( v < 1 );
}
var arr = new Uint8ClampedArray( [ 1, 2, 3 ] );
var idx = arr.findIndex( predicate );
// returns -1
A predicate
function is provided three arguments:
value
: array elementindex
: array indexarr
: array on which the method is invoked
To set the callback execution context, provide a thisArg
.
function predicate( v ) {
this.count += 1;
return ( v >= 3 );
}
var ctx = {
'count': 0
};
var arr = new Uint8ClampedArray( [ 1, 2, 3 ] );
var idx = arr.findIndex( predicate, ctx );
// returns 2
var n = ctx.count;
// returns 3
Uint8ClampedArray.prototype.forEach( fcn[, thisArg] )
Invokes a callback for each array element.
var arr = new Uint8ClampedArray( [ 1, 2, 3 ] );
var str = '';
function fcn( v, i ) {
str += i + ':' + v;
if ( i < arr.length-1 ) {
str += ' ';
}
}
arr.forEach( fcn );
console.log( str );
// => '0:1 1:2 2:3'
The callback is provided three arguments:
value
: array elementindex
: array indexarr
: array on which the method is invoked
To set the callback execution context, provide a thisArg
.
function fcn() {
this.count += 1;
}
var ctx = {
'count': 0
};
var arr = new Uint8ClampedArray( [ 1, 2, 3 ] );
arr.forEach( fcn, ctx );
var n = ctx.count;
// returns 3
Uint8ClampedArray.prototype.includes( searchElement[, fromIndex] )
Returns a boolean
indicating whether an array includes a search element.
var arr = new Uint8ClampedArray( [ 1, 2, 3 ] );
var bool = arr.includes( 3 );
// returns true
bool = arr.includes( 0 );
// returns false
By default, the method searches the entire array (fromIndex = 0
). To begin searching from a specific array index, provide a fromIndex
.
var arr = new Uint8ClampedArray( [ 1, 2, 3 ] );
var bool = arr.includes( 1, 1 );
// returns false
When a fromIndex
is negative, the starting index is resolved relative to the last array element.
var arr = new Uint8ClampedArray( [ 1, 2, 3 ] );
var bool = arr.includes( 1, -2 );
// returns false
Uint8ClampedArray.prototype.indexOf( searchElement[, fromIndex] )
Returns the index of the first array element strictly equal to a search element.
var arr = new Uint8ClampedArray( [ 1, 2, 3 ] );
var idx = arr.indexOf( 3 );
// returns 2
idx = arr.indexOf( 0 );
// returns -1
By default, the method searches the entire array (fromIndex = 0
). To begin searching from a specific array index, provide a fromIndex
.
var arr = new Uint8ClampedArray( [ 1, 2, 3 ] );
var idx = arr.indexOf( 1, 1 );
// returns -1
When a fromIndex
is negative, the starting index is resolved relative to the last array element.
var arr = new Uint8ClampedArray( [ 1, 2, 3 ] );
var idx = arr.indexOf( 1, -2 );
// returns -1
Uint8ClampedArray.prototype.join( [separator] )
Serializes an array by joining all array elements as a string.
var arr = new Uint8ClampedArray( [ 1, 2, 3 ] );
var str = arr.join();
// returns '1,2,3'
By default, the method delineates array elements using a comma ,
. To specify a custom separator, provide a separator
string.
var arr = new Uint8ClampedArray( [ 1, 2, 3 ] );
var str = arr.join( '|' );
// returns '1|2|3'
Uint8ClampedArray.prototype.keys()
Returns an iterator for iterating over array keys.
var arr = new Uint8ClampedArray( [ 1, 2 ] );
// Create an iterator:
var it = arr.keys();
// Iterate over keys...
var v = it.next().value;
// returns 0
v = it.next().value;
// returns 1
var bool = it.next().done;
// returns true
Uint8ClampedArray.prototype.lastIndexOf( searchElement[, fromIndex] )
Returns the index of the last array element strictly equal to a search element, iterating from right to left.
var arr = new Uint8ClampedArray( [ 1, 0, 2, 0, 1 ] );
var idx = arr.lastIndexOf( 0 );
// returns 3
idx = arr.lastIndexOf( 3 );
// returns -1
By default, the method searches the entire array (fromIndex = -1
). To begin searching from a specific array index, provide a fromIndex
.
var arr = new Uint8ClampedArray( [ 1, 0, 2, 0, 1 ] );
var idx = arr.lastIndexOf( 0, 2 );
// returns 1
When a fromIndex
is negative, the starting index is resolved relative to the last array element.
var arr = new Uint8ClampedArray( [ 1, 0, 2, 0, 1 ] );
var idx = arr.lastIndexOf( 0, -3 );
// returns 1
Uint8ClampedArray.prototype.map( fcn[, thisArg] )
Maps each array element to an element in a new array having the same data type as the host array.
function fcn( v ) {
return v * 2;
}
var arr1 = new Uint8ClampedArray( [ 1, 2, 3 ] );
var arr2 = arr1.map( fcn );
// returns <Uint8ClampedArray>[ 2, 4, 6 ]
A callback is provided three arguments:
value
: array elementindex
: array indexarr
: array on which the method is invoked
To set the callback execution context, provide a thisArg
.
function fcn( v ) {
this.count += 1;
return v * 2;
}
var ctx = {
'count': 0
};
var arr1 = new Uint8ClampedArray( [ 1, 2, 3 ] );
var arr2 = arr1.map( fcn, ctx );
var n = ctx.count;
// returns 3
Uint8ClampedArray.prototype.reduce( fcn[, initialValue] )
Applies a function against an accumulator and each element in an array and returns the accumulated result.
function fcn( acc, v ) {
return acc + ( v*v );
}
var arr = new Uint8ClampedArray( [ 2, 1, 3 ] );
var v = arr.reduce( fcn );
// returns 12
If not provided an initial value, the method invokes a provided function with the first array element as the first argument and the second array element as the second argument.
If provided an initial value, the method invokes a provided function with the initial value as the first argument and the first array element as the second argument.
function fcn( acc, v ) {
return acc + ( v*v );
}
var arr = new Uint8ClampedArray( [ 2, 1, 3 ] );
var v = arr.reduce( fcn, 0 );
// returns 14
A callback is provided four arguments:
acc
: accumulated resultvalue
: array elementindex
: array indexarr
: array on which the method is invoked
Uint8ClampedArray.prototype.reduceRight( fcn[, initialValue] )
Applies a function against an accumulator and each element in an array and returns the accumulated result, iterating from right to left.
function fcn( acc, v ) {
return acc + ( v*v );
}
var arr = new Uint8ClampedArray( [ 2, 1, 3 ] );
var v = arr.reduceRight( fcn );
// returns 8
If not provided an initial value, the method invokes a provided function with the last array element as the first argument and the second-to-last array element as the second argument.
If provided an initial value, the method invokes a provided function with the initial value as the first argument and the last array element as the second argument.
function fcn( acc, v ) {
return acc + ( v*v );
}
var arr = new Uint8ClampedArray( [ 2, 1, 3 ] );
var v = arr.reduce( fcn, 0 );
// returns 14
A callback is provided four arguments:
acc
: accumulated resultvalue
: array elementindex
: array indexarr
: array on which the method is invoked
Uint8ClampedArray.prototype.reverse()
Reverses an array in-place (thus mutating the array on which the method is invoked).
var arr = new Uint8ClampedArray( [ 2, 0, 3 ] );
// Reverse the array:
arr.reverse();
var v = arr[ 0 ];
// returns 3
v = arr[ 1 ];
// returns 0
v = arr[ 2 ];
// returns 2
Uint8ClampedArray.prototype.set( arr[, offset] )
Sets array elements.
var arr = new Uint8ClampedArray( [ 1, 2, 3 ] );
// returns <Uint8ClampedArray>[ 1, 2, 3 ]
// Set the first two array elements:
arr.set( [ 4, 5 ] );
var v = arr[ 0 ];
// returns 4
v = arr[ 1 ];
// returns 5
By default, the method starts writing values at the first array index. To specify an alternative index, provide an index offset
.
var arr = new Uint8ClampedArray( [ 1, 2, 3 ] );
// returns <Uint8ClampedArray>[ 1, 2, 3 ]
// Set the last two array elements:
arr.set( [ 4, 5 ], 1 );
var v = arr[ 1 ];
// returns 4
v = arr[ 2 ];
// returns 5
Uint8ClampedArray.prototype.slice( [begin[, end]] )
Copies array elements to a new array with the same underlying data type as the host array.
var arr1 = new Uint8ClampedArray( [ 1, 2, 3 ] );
var arr2 = arr1.slice();
var bool = ( arr1 === arr2 );
// returns false
bool = ( arr1.buffer === arr2.buffer );
// returns false
var v = arr2[ 0 ];
// returns 1
v = arr2[ 1 ];
// returns 2
v = arr2[ 2 ];
// returns 3
By default, the method copies elements beginning with the first array element. To specify an alternative array index at which to begin copying, provide a begin
index (inclusive).
var arr1 = new Uint8ClampedArray( [ 1, 2, 3 ] );
var arr2 = arr1.slice( 1 );
var len = arr2.length;
// returns 2
var v = arr2[ 0 ];
// returns 2
v = arr2[ 1 ];
// returns 3
By default, the method copies all array elements after begin
. To specify an alternative array index at which to end copying, provide an end
index (exclusive).
var arr1 = new Uint8ClampedArray( [ 1, 2, 3 ] );
var arr2 = arr1.slice( 0, 2 );
var len = arr2.length;
// returns 2
var v = arr2[ 0 ];
// returns 1
v = arr2[ 1 ];
// returns 2
When a begin
and/or end
index is negative, the respective index is determined relative to the last array element.
var arr1 = new Uint8ClampedArray( [ 1, 2, 3 ] );
var arr2 = arr1.slice( -arr1.length, -1 );
var len = arr2.length;
// returns 2
var v = arr2[ 0 ];
// returns 1
v = arr2[ 1 ];
// returns 2
Uint8ClampedArray.prototype.some( predicate[, thisArg] )
Tests whether at least one array element passes a test implemented by a predicate
function.
function predicate( v ) {
return ( v >= 2 );
}
var arr = new Uint8ClampedArray( [ 1, 2 ] );
var bool = arr.some( predicate );
// returns true
A predicate
function is provided three arguments:
value
: array elementindex
: array indexarr
: array on which the method is invoked
To set the callback execution context, provide a thisArg
.
function predicate( v ) {
this.count += 1;
return ( v >= 2 );
}
var ctx = {
'count': 0
};
var arr = new Uint8ClampedArray( [ 1, 1 ] );
var bool = arr.some( predicate, ctx );
// returns false
var n = ctx.count;
// returns 2
Uint8ClampedArray.prototype.sort( [compareFunction] )
Sorts an array in-place (thus mutating the array on which the method is invoked).
var arr = new Uint8ClampedArray( [ 2, 3, 0 ] );
// Sort the array (in ascending order):
arr.sort();
var v = arr[ 0 ];
// returns 0
v = arr[ 1 ];
// returns 2
v = arr[ 2 ];
// returns 3
By default, the method sorts array elements in ascending order. To impose a custom order, provide a compareFunction
.
function descending( a, b ) {
return b - a;
}
var arr = new Uint8ClampedArray( [ 2, 3, 0 ] );
// Sort the array (in descending order):
arr.sort( descending );
var v = arr[ 0 ];
// returns 3
v = arr[ 1 ];
// returns 2
v = arr[ 2 ];
// returns 0
The comparison function is provided two array elements, a
and b
, per invocation, and its 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 thanb
(i.e.,a
should come beforeb
). - If the comparison function returns a value greater than zero, then the method sorts
a
to an index higher thanb
(i.e.,b
should come beforea
). - If the comparison function returns zero, then the relative order of
a
andb
should remain unchanged.
Uint8ClampedArray.prototype.subarray( [begin[, end]] )
Creates a new typed array view over the same underlying ArrayBuffer
and with the same underlying data type as the host array.
var arr1 = new Uint8ClampedArray( [ 1, 2, 3 ] );
var arr2 = arr1.subarray();
// returns <Uint8ClampedArray>[ 1, 2, 3 ]
var bool = ( arr1.buffer === arr2.buffer );
// returns true
By default, the method creates a typed array view beginning with the first array element. To specify an alternative array index at which to begin, provide a begin
index (inclusive).
var arr1 = new Uint8ClampedArray( [ 1, 2, 3 ] );
var arr2 = arr1.subarray( 1 );
// returns <Uint8ClampedArray>[ 2, 3 ]
var bool = ( arr1.buffer === arr2.buffer );
// returns true
By default, the method creates a typed array view which includes all array elements after begin
. To limit the number of array elements after begin
, provide an end
index (exclusive).
var arr1 = new Uint8ClampedArray( [ 1, 2, 3 ] );
var arr2 = arr1.subarray( 0, 2 );
// returns <Uint8ClampedArray>[ 1, 2 ]
var bool = ( arr1.buffer === arr2.buffer );
// returns true
When a begin
and/or end
index is negative, the respective index is determined relative to the last array element.
var arr1 = new Uint8ClampedArray( [ 1, 2, 3 ] );
var arr2 = arr1.subarray( -arr1.length, -1 );
// returns <Uint8ClampedArray>[ 1, 2 ]
var bool = ( arr1.buffer === arr2.buffer );
// returns true
If the method is unable to resolve indices to a non-empty array subsequence, the method returns an empty typed array.
var arr1 = new Uint8ClampedArray( [ 1, 2, 3 ] );
var arr2 = arr1.subarray( 10, -1 );
// returns <Uint8ClampedArray>[]
Uint8ClampedArray.prototype.toLocaleString( [locales[, options]] )
Serializes an array as a locale-specific string
.
var arr = new Uint8ClampedArray( [ 1, 2, 3 ] );
var str = arr.toLocaleString();
// returns '1,2,3'
Uint8ClampedArray.prototype.toString()
Serializes an array as a string
.
var arr = new Uint8ClampedArray( [ 1, 2, 3 ] );
var str = arr.toString();
// returns '1,2,3'
Uint8ClampedArray.prototype.values()
Returns an iterator for iterating over array elements.
var arr = new Uint8ClampedArray( [ 1, 2 ] );
// Create an iterator:
var it = arr.values();
// Iterate over array elements...
var v = it.next().value;
// returns 1
v = it.next().value;
// returns 2
var bool = it.next().done;
// returns true
Examples
var randu = require( '@stdlib/random/base/randu' );
var round = require( '@stdlib/math/base/special/round' );
var ctor = require( '@stdlib/array/uint8c' );
var arr;
var i;
arr = new ctor( 10 );
for ( i = 0; i < arr.length; i++ ) {
arr[ i ] = round( randu()*100.0 );
}
console.log( arr );