乐趣区

关于es6:ES6小金库

forEach 终止循环

谬误用法一 : 应用 break( 会报错)


var array = ["第一","第二","第三","第四"];
        
// 间接就报错了
array.forEach(function(item,index){if (item == "第三") {break;}
    alert(item);
});

谬误用法二 : 应用 return false( 会跳过以后项, 持续循环)

相当于 for 循环中的 continue

var array = ["第一","第二","第三","第四"];
        
// 会遍历数组所有元素,只是执行跳过 "第三",return false 上面的代码不再执行而已
array.forEach(function(item,index){if (item == "第三") {return false;}
    console.log(item);// "第一" "第二" "第四"
});
console.log("以下代码")// 以下代码

正确用法: 使用 try catch(抛出异样)


try {var array = ["第一","第二","第三","第四"];
    
    // 执行到第 3 次,完结循环
    array.forEach(function(item,index){if (item == "第三") {throw new Error("第三");
        }
        console.log(item);// 第一 第二
    });
} catch(e) {if(e.message!="第三") throw e;
};
// 上面的代码不影响继续执行
console.log("下方代码");// 下方代码

参考原文

退出移动版