The filter()
method creates a new typed array with all elements that pass the test implemented by the provided function. This method has the same algorithm as Array.prototype.filter()
. TypedArray is one of the typed array types here.
The filter()
method creates a new typed array with all elements that pass the test implemented by the provided function. This method has the same algorithm as Array.prototype.filter()
. TypedArray is one of the typed array types here.
// Arrow function filter((element) => { /* ... */ } ) filter((element, index) => { /* ... */ } ) filter((element, index, array) => { /* ... */ } ) // Callback function filter(callbackFn) filter(callbackFn, thisArg) // Inline callback function filter(function(element) { /* ... */ }) filter(function(element, index) { /* ... */ }) filter(function(element, index, array){ /* ... */ }) filter(function(element, index, array) { /* ... */ }, thisArg)
callbackFn
Function to test each element of the typed array.
The function is called with the following arguments: (element, index, array)
. Return true
to keep the element, false
otherwise.
thisArg
Optional
Value to use as this
when executing callbackFn
.
A new typed array with the elements that pass the test.
The filter()
method calls a provided callbackFn
function once for each element in a typed array, and constructs a new typed array of all the values for which callbackFn
returns a value that coerces to true
. callbackFn
is invoked only for indexes of the typed array which have assigned values; it is not invoked for indexes which have been deleted or which have never been assigned values. Typed array elements which do not pass the callbackFn
test are skipped, and are not included in the new typed array.
callbackFn
is invoked with three arguments:
If a thisArg
parameter is provided to filter()
, it will be passed to callbackFn
when invoked, for use as its this
value. Otherwise, the value undefined
will be passed for use as its this
value. The this
value ultimately observable by callbackFn
is determined according to the usual rules for determining the this
seen by a function.
filter()
does not mutate the typed array on which it is called.
The range of elements processed by filter()
is set before the first invocation of callbackFn
. Elements which are appended to the typed array after the call to filter()
begins will not be visited by callbackFn
. If existing elements of the typed array are changed, or deleted, their value as passed to callbackFn
will be the value at the time filter()
visits them; elements that are deleted are not visited.
The following example uses filter()
to create a filtered typed array that has all elements with values less than 10 removed.
function isBigEnough(element, index, array) { return element >= 10; } new Uint8Array([12, 5, 8, 130, 44]).filter(isBigEnough); // Uint8Array [ 12, 130, 44 ]
Arrow functions provide a shorter syntax for the same test.
new Uint8Array([12, 5, 8, 130, 44]).filter((elem) => elem >= 10); // Uint8Array [ 12, 130, 44 ]
Desktop | Mobile | Server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | Deno | Node.js | |
filter |
45 |
12 |
38 |
No |
No |
9.1 |
No |
45 |
38 |
32 |
9.3 |
5.0 |
1.0 |
4.0.0 |
© 2005–2022 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/filter