登录
首页 >  文章 >  前端

JavaScript数组负索引使用方法

时间:2026-04-24 08:00:43 216浏览 收藏

JavaScript开发者终于告别繁琐的数组末位访问写法了!ES2022 引入的 `Array.prototype.at()` 方法以极简、安全的方式支持负索引——`at(-1)` 直接获取最后一个元素,`at(-2)` 获取倒数第二个,越界时优雅返回 `undefined` 而不报错,彻底替代了易出错的 `arr[arr.length - 1]` 和冗余的 `slice(-1)[0]`;它不仅大幅提升代码可读性与健壮性,还天然适配空数组、可选链调用等现代开发场景,且已在主流浏览器和 Node.js 16.6+ 中原生支持,搭配几行 polyfill 即可轻松兼容旧环境。

JavaScript中Array-prototype-at处理负数索引技巧

Array.prototype.at() 是 ES2022 引入的便捷方法,专门用于安全访问数组元素,尤其擅长处理负数索引——它直接从末尾开始计数,无需手动计算 array.length + negativeIndex

负数索引的直观含义

传入负数时,at()-1 当作最后一个元素,-2 是倒数第二个,依此类推:

  • [10, 20, 30].at(-1)30
  • [10, 20, 30].at(-3)10
  • [10, 20, 30].at(-4)undefined(越界,不报错)

对比传统写法,更简洁安全

过去取最后一个元素常用 arr[arr.length - 1],但需确保数组非空,否则会得到 undefined 或出错;而 at(-1) 天然支持空数组和越界场景:

  • [].at(-1)undefined
  • [5].at(-10)undefined
  • 无需提前判断长度,代码更扁平、可读性更强

适用常见场景

适合快速获取末尾元素、实现“栈式”操作或简化切片逻辑:

  • 取最后两个元素:const lastTwo = [a, b, c, d].slice(-2)(注意:slice 支持负数,但 at 只取单个)
  • 安全读取可能不存在的末位配置:config?.items?.at(-1)?.id
  • 替代 array[array.length - 1]array.slice(-1)[0] 等冗余写法

浏览器兼容性提醒

现代浏览器(Chrome 92+、Firefox 90+、Safari 15.4+)及 Node.js 16.6+ 原生支持。如需兼容旧环境,可用简单 polyfill:

if (!Array.prototype.at) {
  Array.prototype.at = function(n) {
    const len = this.length;
    return n >= 0 ? this[n] : this[len + n];
  };
}

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《JavaScript数组负索引使用方法》文章吧,也可关注golang学习网公众号了解相关技术文章。

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>