如何在 javascript for-of 循环中跳过第一次迭代

问题描述 投票:0回答:3

我知道如何跳过 javascript foreach 循环中的第一次迭代

dataObject.slice(1).forEach((row) => {});

我想知道如何在javascript中使用for of循环做同样的事情,请帮助我,谢谢

for( const row of dataObject )

javascript node.js foreach for-of-loop
3个回答
4
投票

与使用

forEach
跳过它的方式相同 - 将
dataObject
表达式替换为
dataObject.slice(1)

for( const row of dataObject.slice(1) )

3
投票

虽然 CertainPerformace 的解决方案是大多数人(包括我)都会采用的解决方案,但它确实有一个缺点,即必须制作临时数组副本,当您拥有巨大的数组时,这会很糟糕(但通常完全不明显)。

为了防止复制数组,请创建一个临时变量来检查它是否是循环中的第一个。这样做的缺点是临时变量,并且每次迭代的

if
检查可能会使速度变慢。

let first = true;
for (const row of dataObject) {
  if (first) {
    first = false;
    continue;
  }
  // ... rest of script
}

如果您想要更多地控制迭代,我可能只会使用传统的增量 for 循环,因为

forEach
for-of
for-in
意味着迭代所有内容。


0
投票

如果您想避免创建新数组(

slice
会这样做),那么您还可以选择使用 ECMAScript 2025 引入的迭代器辅助方法之一:drop:

const data = [1, 2, 3, 4, 5];

for (const row of data.values().drop(1)) console.log(row);

© www.soinside.com 2019 - 2024. All rights reserved.