百科狗-知识改变命运!
--

Array.prototype.at() - JavaScript Array 对象

梵高12个月前 (11-21)阅读数 19#技术干货
文章标签数组

Array.prototype.at()

at()方法接收一个整数值并返回该索引对应的元素,允许正数和负数。负整数从数组中的最后一个元素开始倒数。

语法

at(index)

参数

index

要返回的数组元素的索引(位置)。当传递负数时,支持从数组末端开始的相对索引;也就是说,如果使用负数,返回的元素将从数组的末端开始倒数。

返回值

匹配给定索引的数组中的元素。如果找不到指定的索引,则返回undefined

描述

在传递非负数时,at()方法等价于括号表示法。例如,array[0]array.at(0)均返回第一个元素。但是,当你需要从数组的末端开始倒数时,则不能使用 Python 和 R 语言中支持的array[-1],因为方括号内的所有值都会被视为字符串属性,因此你最终读取的是array["-1"],这只是一个普通的字符串属性而不是数组索引。

通常的做法是访问length并将其减去从末端开始的相对索引。例如,array[array.length - 1]at()方法允许使用相对索引,因此上面的示例可以简化为array.at(-1)。更正式地,当index 时,该方法将访问索引index + array.length

at()方法是通用的。其仅期望this具有length属性和以整数为键的属性。

示例

返回数组的最后一个值

Array.prototype.at() - JavaScript Array 对象

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

// 数组及数组元素
const cart = ['apple', 'banana', 'pear'];

// 一个函数,用于返回给定数组的最后一个元素
function returnLast(arr) {
  return arr.at(-1);
}

// 获取 'cart' 数组的最后一个元素
const item1 = returnLast(cart);
console.log(item1); // 输出:'pear'

// 在 'cart' 数组中添加一个元素
cart.push('orange');
const item2 = returnLast(cart);
console.log(item2); // 输出:'orange'

比较不同的数组方法

这个示例比较了选择Array中倒数第二个元素的不同方法。虽然下面显示的所有方法都是可行的,但这个示例凸显了at()方法的简洁性和可读性。

// 数组及数组元素
const colors = ['red', 'green', 'blue'];

// 使用长度属性
const lengthWay = colors[colors.length-2];
console.log(lengthWay); // 输出:'green'

// 使用 slice() 方法。注意会返回一个数组
const sliceWay = colors.slice(-2, -1);
console.log(sliceWay[0]); // 输出:'green'

// 使用 at() 方法
const atWay = colors.at(-2);
console.log(atWay); // 输出:'green'

在非数组对象上调用 at()

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

const arrayLike = {
  length: 2,
  0: "a",
  1: "b",
};
console.log(Array.prototype.at.call(arrayLike, -1)); // "b"

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)