1. forEach用法
遍历时更加简洁,效率和for循环相同,不用处理集合下标的问题,减少了出错的概率
const items = ['item1', 'item2', 'item3'];
const arr = [];
// for
for (let i=0; i<items.length; i++) {
arr.push(items[i]);
}
// forEach
items.forEach((item) => {
arr.push(item);
});
2. forEach 如何退出循环
- 常规的break 、return 方式无法退出循环
1. break 方式
// break 方式
var arr = [1,2,3,4,5]
arr.forEach((item, index) => {
// Uncaught SyntaxError: Illegal break statement
if (index > 1) {
break
}
console.log(item) // Uncaught SyntaxError: Illegal break statement
})
//使用break直接报错
2. return方式
// return方式
var arr = [1,2,3,4,5]
arr.forEach((item, index) => {
console.log("下标:",index)
if (index > 1) {
return
}
console.log("值:",item)
})
//下标: 0
//值: 1
//下标: 1
//值: 2
//下标: 2
//下标: 3
//下标: 4
// return也无法退出循环
3. try catch 方式
- try catch 可以中断 forEach ,在 try 中 抛出错误即可。
var arr = [1,2,3,4,5]
try {
arr.forEach((item, index) => {
console.log("下标:",index)
if (index > 1) {
throw Error();
}
console.log("值:",item)
})
} catch(err){ }
//下标: 0
//值: 1
//下标: 1
//值: 2
//下标: 2