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

JS数组push操作后索引取值疑问:为何输出是Orange Red?

数组push方法与length属性的逻辑说明

我们一步步拆解代码的执行过程,就能明白最终输出的原因:

  • 初始数组:var color = ["Orange", "Blue", "Green"]
    此时数组有3个元素,索引从0到2,对应的值分别是Orange、Blue、Green,数组长度color.length为3。
  • 执行color.push("Red"):
    push()方法的核心作用是在数组的末尾追加新元素,执行后数组变为["Orange", "Blue", "Green", "Red"],数组长度自动更新为4。
  • 执行输出语句console.log(color[0] + " " + color[color.length-1]):
    • color[0]是数组的第一个元素,结果为Orange;
    • color.length-1计算后是4-1=3,由于数组索引从0开始计数,索引3对应的就是刚添加的Red;
      两者拼接后输出就是Orange Red。

你之前的误解在于,误以为push添加新元素后,color.length-1仍指向原来的最后一个元素Green,但实际上push会直接把新元素放到数组末尾,同时同步增加数组的length值,因此length-1会指向这个新的末尾元素。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 12:11:06