问题描述
如何跳过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
}
});