JavaScript - TypedArray findLast() Method
The JavaScript TypedArray findLast() method allows you to search the elements of a typed array in reverse order, which means that the last element of the typed array will be considered as first element and vice versa. The method returns the value of the first element (from last) that satisfies the provided testing function. If none of the elements of the typed array satisfy the testing function, the method will return 'undefined'.
Here are some additional points you should know about the 'findLast()' method −
The findLast() method operates on a TypedArray (such as Uint8Array, Int16Array, etc.).
It accepts a testing function as a parameter.
The testing function is executed for each element in the TypedArray.
If an element satisfies the condition specified by the testing function (it returns a true value).
If no element satisfies the testing function an undefined is returned.
Syntax
Following is the syntax of JavaScript TypedArray findLast() method −
findLast(callbackFn, thisArg)
Parameters
This method accepts two parameters named 'callbackFn' and 'thisArg', which are described below −
callbackFn − This parameter is a testing function that will be executed for each element in the TypedArray.
This function takes three parameters named 'element', 'index', and 'array'. Here's the description for each parameter −
element − Represents the current element being processed in the TypedArray.
index − Indicates the index (position) of the current element within the TypedArray.
array − Refers to the entire TypedArray.
thisArg (optional) − This is an optional parameter that allows you to specify the value of this within the callbackFn.
Return value
This method returns the last element that satisfies the testing function. If no element satisfies the testing function, 'undefined' is returned.
Examples
Example 1
If the element satisfies the testing function, it will return the value of the last element in the typed array.
In the following example, we are using the JavaScript TypedArray findLast() method to retrieve the last element that satisfied the providing testing function. We create a testing function named isEven() checks for even numbers, and passes it as an argument to this method.
<html>
<head>
<title>JavaScript TypedArray findLast() Method</title>
</head>
<body>
<script>
function isEven(element, index, array){
return element %2 == 0;
}
const T_array = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8, 9]);
document.write("Typed array: ", T_array);
//calling function
document.write("<br>The last even number in typed array: ", T_array.findLast(isEven));
</script>
</body>
</html>
Output
The above program returns the last even number as 8.
Typed array: 1,2,3,4,5,6,7,8,9 The last even number in typed array: 8
Example 2
Find the last leap year in TypedArray.
In the given example below, we create a function named isLeapYear() that checks for leap year in this typed array [2001, 2004, 2005, 2006, 2009, 2012, 2015], and we pass this function as an argument to findLast() method to retrieve the last leap year that satisfies the testing function.
<html>
<head>
<title>JavaScript TypedArray findLast() Method</title>
</head>
<body>
<script>
function isLeapYear(element, index, arrar){
return ((element % 4 == 0) && (element % 400 == 0 || element % 100 !=0));
}
const T_array = new Int16Array([2001, 2004, 2005, 2006, 2009, 2012, 2015]);
document.write("Typed array: ", T_array);
//calling function
document.write("<br>The last leap year in typed array is: ", T_array.findLast(isLeapYear));
</script>
</body>
</html>
Output
Once the above program is executed, it will return the last leap year in typed array as −
Typed array: 2001,2004,2005,2006,2009,2012,2015 The last leap year in typed array is: 2012
Example 3
If no element satisfies the testing function, the findLast() method will return 'undefined'.
The following is another example of the JavaScript TypedArray findLast() method. We create a function named isNegative() that checks for the negative numbers, and passes it as an argument to this method to retrieve the last element that satisfies the testing function.
<html>
<head>
<title>JavaScript TypedArray findLast() Method</title>
</head>
<body>
<script>
function isNegative(element, index, array){
return element < 0;
}
const T_array = new Uint8Array([1, 10, 5, 6, 7, 8, 9, 10]);
document.write("Typed array: ", T_array);
// calling function
document.write("<br>The last negative element: ", T_array.findLast(isNegative));
</script>
</body>
</html>
Output
After executing the above program, it will return 'undefined'.
Typed array: 1,10,5,6,7,8,9,10 The last negative element: undefined