在forEach循环中跳过第一次迭代

问题描述

如何跳过forEach循环中的第一次迭代?我的forEach循环按预期工作,但是我需要从第二个项目开始,而完全忽略第一个项目。我正在使用ES6。

cars.forEach(car => {...do something});

我以为我可以做类似的事情

cars.skip(1).forEach(car => {...do something});

解决方法

您需要检查索引,并根据需要使用该值的return。在您的情况下,您需要跳过零索引(0),这是代码

const cars = ['audi','bmw','maybach']

cars.forEach((car,index) => {
  if (index === 0) return;
  console.log(car)
});

此代码将显示'bmw'和'maybach'

,

应该是一个相当简单的单项测试-您的“执行操作”功能可以根据需要设置/读取外部变量。

let myArray = [1,2,3,4,5];

let firstItem = true;
myArray.forEach(item => {
  if (firstItem != true){
    console.log(item);
  } else {
    firstItem = false;
  }
});

,

写出我的评论作为答案:

cars.slice(1).forEach(car => { do something });

MDN对切片方法的引用:https://developer.mozilla.org/nl/docs/Web/JavaScript/Reference/Global_Objects/Array/slice

,

由于forEach循环中有可用的计数变量,因此您需要手动进行计数。

let count = 0;
let skipVal = 0;
cars.forEach(car => {
count++;
if (count != skipVal){
...do something
}
});