我知道如何跳过 javascript foreach 循环中的第一次迭代
dataObject.slice(1).forEach((row) => {});
我想知道如何在javascript中使用for of循环做同样的事情,请帮助我,谢谢
for( const row of dataObject )
与使用
forEach
跳过它的方式相同 - 将 dataObject
表达式替换为 dataObject.slice(1)
。
for( const row of dataObject.slice(1) )
虽然 CertainPerformace 的解决方案是大多数人(包括我)都会采用的解决方案,但它确实有一个缺点,即必须制作临时数组副本,当您拥有巨大的数组时,这会很糟糕(但通常完全不明显)。
为了防止复制数组,请创建一个临时变量来检查它是否是循环中的第一个。这样做的缺点是临时变量,并且每次迭代的
if
检查可能会使速度变慢。
let first = true;
for (const row of dataObject) {
if (first) {
first = false;
continue;
}
// ... rest of script
}
如果您想要更多地控制迭代,我可能只会使用传统的增量 for 循环,因为
forEach
、for-of
和 for-in
意味着迭代所有内容。
如果您想避免创建新数组(
slice
会这样做),那么您还可以选择使用 ECMAScript 2025 引入的迭代器辅助方法之一:drop:
const data = [1, 2, 3, 4, 5];
for (const row of data.values().drop(1)) console.log(row);