如何跳过 forEach 循环中的第一次迭代?我的 forEach 循环按预期工作,但我需要从第二项开始,完全忽略第一项。我正在使用 ES6。
cars.forEach(car => {...do something});
我想我也许可以做类似的事情
cars.skip(1).forEach(car => {...do something});
您需要检查索引,并使用您需要的值的返回值。在您的情况下,您需要跳过零索引(0),这里是代码
const cars = ['audi', 'bmw', 'maybach']
cars.forEach((car, index) => {
if (index === 0) return;
console.log(car)
});
此代码将显示“bmw”和“maybach”
写下我的评论作为答案:
cars.slice(1).forEach(car => { do something });
MDN 对切片方法的引用:https://developer.mozilla.org/nl/docs/Web/JavaScript/Reference/Global_Objects/Array/slice
应该是一个相当简单的单项测试 - 您的“做某事”函数可以根据需要设置/读取外部变量。
let myArray = [1,2,3,4,5];
let firstItem = true;
myArray.forEach(item => {
if (firstItem != true){
console.log(item);
} else {
firstItem = false;
}
});
由于 forEach 循环中有可用的计数变量,因此您可以手动创建一个来对其进行计数。
let count = 0;
let skipVal = 0;
cars.forEach(car => {
count++;
if (count != skipVal){
...do something
}
});
使用 sliced for 循环怎么样?
const s=['car','bike','plane']
for(each of s.slice(1))console.log(each)
从 ECMAScript 2025 开始,您可以在可迭代对象上调用
drop
,因此您现在可以执行以下操作:
const cars = ["Honda", "Mercedez", "Tesla", "Peugeot"];
cars.values().drop(1).forEach(car => console.log(car));