TypedArray.prototype.at()

TypedArray 实例的 at() 方法采用整数值并返回该索引处的项目,允许正整数和负整数。负整数从类型化数组中的最后一项开始倒数。该方法与 Array.prototype.at() 的算法相同。

¥The at() method of TypedArray instances takes an integer value and returns the item at that index, allowing for positive and negative integers. Negative integers count back from the last item in the typed array. This method has the same algorithm as Array.prototype.at().

Try it

语法

¥Syntax

js
at(index)

参数

¥Parameters

index

要返回的类型化数组元素的从零开始的索引,转换为整数。负索引从类型化数组的末尾开始倒数 - 如果访问了 index < 0index + array.length

返回值

¥Return value

类型化数组中与给定索引匹配的元素。如果 index < -array.lengthindex >= array.length 则始终返回 undefined,而不尝试访问相应的属性。

¥The element in the typed array matching the given index. Always returns undefined if index < -array.length or index >= array.length without attempting to access the corresponding property.

描述

¥Description

详细信息请参见 Array.prototype.at()。此方法不是通用的,只能在类型化数组实例上调用。

¥See Array.prototype.at() for more details. This method is not generic and can only be called on typed array instances.

示例

¥Examples

返回类型化数组的最后一个值

¥Return the last value of a typed array

以下示例提供了一个函数,该函数返回在指定数组中找到的最后一个元素。

¥The following example provides a function which returns the last element found in a specified array.

js
const uint8 = new Uint8Array([1, 2, 4, 7, 11, 18]);

// A function which returns the last item of a given array
function returnLast(arr) {
  return arr.at(-1);
}

const lastItem = returnLast(uint8);
console.log(lastItem); // 18

比较方法

¥Comparing methods

在这里,我们比较选择 TypedArray 的倒数第二个(最后一个)项目的不同方法。虽然以下所有方法都是有效的,但它强调了 at() 方法的简洁性和可读性。

¥Here we compare different ways to select the penultimate (last but one) item of a TypedArray. Whilst all below methods are valid, it highlights the succinctness and readability of the at() method.

js
// Our typed array with values
const uint8 = new Uint8Array([1, 2, 4, 7, 11, 18]);

// Using length property
const lengthWay = uint8[uint8.length - 2];
console.log(lengthWay); // 11

// Using slice() method. Note an array is returned
const sliceWay = uint8.slice(-2, -1);
console.log(sliceWay[0]); // 11

// Using at() method
const atWay = uint8.at(-2);
console.log(atWay); // 11

规范

Specification
ECMAScript Language Specification
# sec-%typedarray%.prototype.at

¥Specifications

浏览器兼容性

BCD tables only load in the browser

¥Browser compatibility

也可以看看