JavaScript中使用for-of循环时如何跳过第一次迭代?
JavaScript for-of 循环跳过第一次迭代的实现方法
你之前用于 forEach 跳过首次迭代的 slice(1) 逻辑可以直接平移到 for-of 循环中,同时还有其他适配不同场景的实现方案:
方案1:直接使用
slice(1)(适用于数组类型的数据源)
和你原有 forEach 的实现逻辑完全一致,直接对数组调用slice(1)获取跳过第一个元素的新数组再遍历即可:for (const row of dataObject.slice(1)) { // 此处编写你的业务逻辑 }优点:写法简洁,和你之前的使用习惯对齐,逻辑直观易懂。
方案2:通过索引判断跳过(适用所有支持
entries方法的可迭代对象,包括数组、Map、Set等)
调用可迭代对象的entries方法同时拿到索引和元素值,判断索引为0时直接跳过当前循环即可:for (const [index, row] of dataObject.entries()) { // 跳过第一个元素 if (index === 0) continue // 此处编写你的业务逻辑 }优点:不需要生成新的数组切片,内存占用更优,适合处理大数组场景。
方案3:通过标记变量判断(适用所有可迭代对象,包括自定义迭代器、生成器返回值等无
slice/entries方法的场景)
定义一个布尔值标记是否是第一次循环,第一次执行时跳过并修改标记即可:let isFirst = true for (const row of dataObject) { if (isFirst) { isFirst = false continue } // 此处编写你的业务逻辑 }优点:兼容性最强,不受数据源类型限制。
内容的提问来源于stack exchange,提问作者Tharinda Hashen
相关产品推荐
相关产品推荐

