admin管理员组

文章数量:1308049

I know how to skip first iteration in javascript foreach loop

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

I want to know how to do the same thing using for of loop in javascript, please help me, thanks

for( const row of dataObject )

I know how to skip first iteration in javascript foreach loop

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

I want to know how to do the same thing using for of loop in javascript, please help me, thanks

for( const row of dataObject )

Share Improve this question edited Dec 6, 2021 at 1:13 Samathingamajig 13.3k3 gold badges17 silver badges44 bronze badges asked Dec 1, 2021 at 6:03 Tharinda HashenTharinda Hashen 811 silver badge6 bronze badges 0
Add a ment  | 

3 Answers 3

Reset to default 4

The same way you're skipping it with forEach - replace the dataObject expression with dataObject.slice(1).

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

While CertainPerformace's solution is what most people, including me, would go with, it does have a the downside of having to make a temporary array copy, which would be bad when you have huge arrays (but pletely unnoticeable usually).

To prevent copying the array, create a temporary variable to check if it's the first in the loop. The downsides of this is the temporary variable, and the if check on every iteration could make it slower.

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

And I would probably just use a traditional incremental for-loop anyways if you want more control over iteration, since forEach, for-of, and for-in are meant to iterate over everything.

If you want to avoid creating a new array (which slice does), then you can also opt for using one of the iterator helper methods that ECMAScript 2025 introduced: drop:

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

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

本文标签: nodejsHow to skip first iteration in javascript forof loopStack Overflow