数组for循环运行机制咨询:为何输出数组元素而非长度值5
数组遍历代码逻辑详解
先拆解这段代码的核心逻辑,一步步给你讲明白:
1. 数组的索引与元素对应关系
你定义的let units = [1, 10, 100, 1000, 20];是一个数组,数组里的每个值都有专属的索引(位置编号),而且索引是从0开始计数的:
- 索引0 → 对应值1
- 索引1 → 对应值10
- 索引2 → 对应值100
- 索引3 → 对应值1000
- 索引4 → 对应值20
而units.length是这个数组的元素总数,也就是5,但它和“访问数组里的具体元素”是完全不同的两个东西。
2. for循环的执行流程
这段for(let i = 0; i < units.length; i += 1)循环的运行步骤是:
- 初始化:先把
i设为0,这是遍历数组的起始索引 - 判断条件:检查
i是否小于数组长度(也就是i < 5),如果成立就执行循环体代码 - 执行循环体:
console.log(units[i])是通过索引i获取数组对应位置的元素,不是获取数组长度 - 自增:执行
i += 1让i加1,然后回到判断条件步骤,直到i >= 5时停止循环
具体每一轮循环的细节:
- 第1轮:i=0 →
units[0]就是数组第1个元素1 → 输出1 - 第2轮:i=1 →
units[1]是数组第2个元素10 → 输出10 - 第3轮:i=2 →
units[2]是100 → 输出100 - 第4轮:i=3 →
units[3]是1000 → 输出1000 - 第5轮:i=4 →
units[4]是20 → 输出20 - 第6轮:i=5 → 5不小于5,循环直接停止
3. 如何输出数组长度5
如果想输出数组长度,直接写console.log(units.length)即可,完全不需要放在循环里——这个循环的作用就是逐个遍历数组里的每个元素,不是用来输出长度的。
内容的提问来源于stack exchange,提问作者New Developer
相关产品推荐
相关产品推荐

