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

JavaScript如何从索引1开始遍历包含对象的数组而非从0开始

问题分析

你的递归代码存在3个核心错误:

  • 直接对数组执行array-1运算不符合JS语法,数组无法和数字直接做减法
  • 递归没有传入当前遍历的位置参数,也没有输出对应索引的元素,反而输出了整个数组
  • 结束条件逻辑完全相反,你要从索引1遍历到末尾,应该是当前索引小于数组长度时继续执行,否则终止递归

正确实现方案

1. 递归版本实现

// startIndex 是遍历起始索引,这里传1即可满足需求
function traverseFromIndex(arr, currentIndex) {
  // 终止条件:当前索引超过数组最大索引就结束递归
  if (currentIndex >= arr.length) return
  // 输出当前索引对应元素
  console.log(arr[currentIndex])
  // 索引+1后继续递归
  return traverseFromIndex(arr, currentIndex + 1)
}

// 调用:从索引1开始遍历
traverseFromIndex(array, 1)

2. 更推荐的非递归实现(无递归栈溢出风险,写法更简洁)

方法一:从指定起始索引直接循环

for (let i = 1; i < array.length; i++) {
  console.log(array[i])
}

方法二:切割数组后遍历

// slice(1)会返回从索引1到末尾的新数组,直接遍历即可
array.slice(1).forEach(item => {
  console.log(item)
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 02:54:04