如何在forEach循环中跳过第一次迭代?我的forEach循环正常工作,但我需要从第二项开始,完全忽略第一项。我正在使用ES6。
cars.forEach(car => {...do something});
我想我可以做类似这样的事情:
cars.skip(1).forEach(car => {...do something});
如何在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)
});
return false
,因为 .forEach()
不会关注返回值。只需要执行 if (index === 0) return;
即可。 - jfriend00将我的评论作为答案写出来:
cars.slice(1).forEach(car => { do something });
MDN关于slice方法的参考资料: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;
}
});
要不考虑使用 切片 循环?
const s=['car','bike','plane']
for(each of s.slice(1))console.log(each)
由于forEach循环中没有计数变量可用,您需要手动创建一个变量来计数。
let count = 0;
let skipVal = 0;
cars.forEach(car => {
count++;
if (count != skipVal){
...do something
}
});
for
循环,并将索引从0
开始改为从1
开始。.forEach()
已经过时了。 - jfriend00