You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何array[array.length]返回undefined?数组最后一个元素访问疑问

为什么你的代码无法获取数组最后一个元素?

嘿,你这是踩了JavaScript数组索引的经典小坑啦!我来给你掰扯明白:

首先得搞清楚一个核心规则:JavaScript数组的索引是从0开始计数的,不是从1开始。也就是说:

  • 数组第一个元素的索引是0
  • 第二个元素是1
  • ...
  • 第N个元素的索引是N-1

回到你的例子:

const arr = [2 , 3, 6, 8];

这个数组有4个元素,所以arr.length返回4没错,但最后一个元素的索引其实是4-1=3,而不是4。你写的arr[arr.length]等价于arr[4],这个索引在数组里根本不存在,自然会返回undefined啦。

正确获取数组最后一个元素的几种方式:

  • 最传统的写法:利用length-1计算索引
    const end = arr[arr.length - 1];
    console.log(end); // 输出8
    
  • ES6+更简洁的写法:使用at()方法,支持负索引(-1就代表最后一个元素)
    const end = arr.at(-1);
    console.log(end); // 输出8
    
  • 另一种灵活写法:用slice()截取最后一个元素(注意slice返回的是数组,所以要取索引0)
    const end = arr.slice(-1)[0];
    console.log(end); // 输出8
    

内容的提问来源于stack exchange,提问作者akirtovskis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 11:10:53