js终止foreach循环(那种感觉又上来了,很难受又很难说)

博客讲述了在JavaScript中使用return在forEach循环中的误解,强调return不会结束整个循环,只会结束当前迭代。作者通过示例代码展示了如何处理循环中的错误检查,包括对开始和结束日期、阶梯费用等的验证,并在遇到错误时显示警告信息。在遇到错误时,使用了return false来终止当前循环而非break,同时记录了这个经验教训。

众所周知,就我不知道,foreach不能用return结束循环,return只能结束foreach的当前循环。然后我就用return,return了一下午,我也是难受了一下午,所以我现在要把这个知识点记录下来。
在这里插入图片描述

使用break(会报错)

使用return fasle (只是终止本次循环)

try {
        this.eCardRuleDTO.serviceStepList.forEach((i, v) => {
          this.startD = 1
          this.endD = 2
          //如果有两个以上的阶梯
          if (this.breakPoint == 1) {
            this.startD += parseInt(v)
            this.endD += parseInt(v)
          }
          //进行开始时间结束时间比较
          if (parseInt(i.startDays) >= parseInt(i.endDays)) {
            throw new Error(
              '第' + this.startD + '阶梯,结束时间需要大于开始时间'
            )
          }
          if (!i.startDays) {
            throw new Error('开始时间不能为空')
          }
          if (!i.startDays) {
            throw new Error('结束时间不能为空')
          }
          //进行阶梯费比较
          if (!parseInt(i.price)) {
            throw new Error('第' + this.startD + '阶梯费用不能为空')
          }
          //进行两个以上的阶梯费用,则比较前一阶梯结束时间和后一阶梯开始时间
          if (this.breakPoint == 1 && this.startD < this.servicesStepLen) {
            if (
              parseInt(i.endDays) >=
              parseInt(this.eCardRuleDTO.serviceStepList[this.startD].startDays)
            ) {
              throw new Error(
                '第' +
                  this.startD +
                  '阶梯和第' +
                  this.endD +
                  '阶梯不能出现重复天数'
              )
            }
          }
        })
      } catch (error) {
        this.$message({
          message: error.message,
          type: 'warning'
        })
        // this.$message.warning(e.message)
        return
      }
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值