在 forEach 循环期间跳过第一次迭代

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

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

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

我想我也许可以做类似的事情

cars.skip(1).forEach(car => {...do something});
javascript node.js ecmascript-6 foreach
6个回答
11
投票

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

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

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

此代码将显示“bmw”和“maybach”


5
投票

写下我的评论作为答案:

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

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


2
投票

应该是一个相当简单的单项测试 - 您的“做某事”函数可以根据需要设置/读取外部变量。

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

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


0
投票

由于 forEach 循环中有可用的计数变量,因此您可以手动创建一个来对其进行计数。

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

0
投票

使用 sliced for 循环怎么样?

const s=['car','bike','plane']
for(each of s.slice(1))console.log(each)

0
投票

从 ECMAScript 2025 开始,您可以在可迭代对象上调用

drop
,因此您现在可以执行以下操作:

const cars = ["Honda", "Mercedez", "Tesla", "Peugeot"];

cars.values().drop(1).forEach(car => console.log(car));

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.