👉 ES 2022 《at()》

78 阅读1分钟

语法

at(index)

参数说明

index: 要返回的数组元素的索引。当index为负数时,从数组末端开始相对索引,返回的元素将从数组的末端开始倒数

返回值

匹配给定索引的数组中的元素没有匹配到的话,返回undefined


示例

基本用法


const arr = ['apple', 'pear', 'cherry']

arr.at(1) // 'pear'

arr.at(-2) // 'pear'

rr.at(-4) // undefined

比较 arr[index] arr.slice() arr.at()

获取数组倒数第二个元素的不同做法

const arr = ['apple', 'pear', 'cherry']

// 长度属性 arr[index]
arr[arr.length - 2] // 'pear'

// arr.slice()
arr.slice(-2, -1)[0] // 'pear'

// at()
arr.at(-2) // 'pear'

可以看出at()``简洁性可读性

非数组对象 at() 用法

let obj = {
    'length': 3,
    0: 'apple',
    1: 'pear',
    2: 'cherry'
}
Array.prototype.at.call(obj, -2) // 'pear'

at()读取thislength并计算需要访问的索引。

tips: 关于JS从非数组对象转数组的一些方法,分别是Array.prototype.slice.call(obj)、Array.from(obj)、[…obj]和Object.values(obj)等方法的详细实现方法。