本人在做购物车练习时,想用foreach遍历商品列表,如果商品列表都选中了,则勾选 全选 按钮,否则遍历时如果有某一项没有勾选则应该将 全选 按钮标志位设为false,然后跳出循环。
问题来了,我在foreach里,不管foreach里,我想跳出循环的地方加break; 还是 return false; 都无济于事!
解决办法:用try包住整个foreach语句,然后在想跳出循环的地方抛出异常,这样就可以跳出循环了。
try{
this.productList.forEach((item,index)=>{
if((typeof(item.checked) == 'undefined')||(item.checked == false)){
this.checkAllFlag = false;
// break; // 无效
// return false; // 也无效
throw new Error("取消全选!"); // 抛出异常跳出循环
}else if((index == (this.productList.length-1))&&(item.checked == true)){
this.checkAllFlag = true;
}
});
}catch(e){
console.log(e);
};
上传一张效果图。。。。 嘿嘿。。。
附上vue购物车链接地址 https://zhangbaron1.github.io/cart/