TypedArray.prototype.findLast()
TypedArray
实例的 findLast()
方法以相反的顺序迭代类型化数组,并返回满足所提供的测试函数的第一个元素的值。如果没有元素满足测试功能,则返回 undefined
。该方法与 Array.prototype.findLast()
的算法相同。
¥The findLast()
method of TypedArray
instances iterates the typed array in reverse order and returns the value of the first element that satisfies the provided testing function. If no elements satisfy the testing function, undefined
is returned. This method has the same algorithm as Array.prototype.findLast()
.
Try it
语法
参数
返回值
描述
¥Description
详细信息请参见 Array.prototype.findLast()
。此方法不是通用的,只能在类型化数组实例上调用。
¥See Array.prototype.findLast()
for more details. This method is not generic and can only be called on typed array instances.
示例
查找类型化数组中的最后一个素数
¥Find the last prime number in a typed array
以下示例返回类型化数组中最后一个素数元素的值,如果没有素数,则返回 undefined
。
¥The following example returns the value of the last element in the typed array that is a prime number, or undefined
if there is no prime number.
function isPrime(element) {
if (element % 2 === 0 || element < 2) {
return false;
}
for (let factor = 3; factor <= Math.sqrt(element); factor += 2) {
if (element % factor === 0) {
return false;
}
}
return true;
}
let uint8 = new Uint8Array([4, 6, 8, 12]);
console.log(uint8.findLast(isPrime)); // undefined (no primes in array)
uint8 = new Uint8Array([4, 5, 7, 8, 9, 11, 12]);
console.log(uint8.findLast(isPrime)); // 11
所有元素都被访问并且可以通过回调进行修改
¥All elements are visited and may be modified by the callback
以下示例显示所有元素都被访问,并且传递给回调的值是它们被访问时的值:
¥The following examples show that all elements are visited, and that the value passed to the callback is their value when visited:
// Declare array with no elements at indexes 2, 3, and 4
// The missing elements will be initialized to zero.
const uint8 = new Uint8Array([0, 1, , , , 5, 6]);
// Iterate through the elements in reverse order.
// Note that all elements are visited.
uint8.findLast((value, index) => {
console.log(`Visited index ${index} with value ${value}`);
});
// Shows all indexes, including deleted
uint8.findLast((value, index) => {
// Modify element 3 on first iteration
if (index === 6) {
console.log("Set uint8[3] to 44");
uint8[3] = 44;
}
// Element 3 is still visited but will have a new value.
console.log(`Visited index ${index} with value ${value}`);
});
// Visited index 6 with value 6
// Visited index 5 with value 5
// Visited index 4 with value 0
// Visited index 3 with value 0
// Visited index 2 with value 0
// Visited index 1 with value 1
// Visited index 0 with value 0
// Set uint8[3] to 44
// Visited index 6 with value 6
// Visited index 5 with value 5
// Visited index 4 with value 0
// Visited index 3 with value 44
// Visited index 2 with value 0
// Visited index 1 with value 1
// Visited index 0 with value 0
规范
Specification |
---|
ECMAScript Language Specification # sec-%typedarray%.prototype.findlast |
浏览器兼容性
BCD tables only load in the browser
也可以看看
¥See also
core-js
中TypedArray.prototype.findLast
的 Polyfill- JavaScript 类型数组 指南
TypedArray
TypedArray.prototype.find()
TypedArray.prototype.findIndex()
TypedArray.prototype.findLastIndex()
TypedArray.prototype.includes()
TypedArray.prototype.filter()
TypedArray.prototype.every()
TypedArray.prototype.some()
Array.prototype.findLast()