希希莱娜
2020-04-15 07:57
采纳率: 64.3%
浏览 2.8k
已采纳

JS循环满足条件后如何停止后续代码的执行

我想往数组里push对象,先开始判断对象是否是空,可以用return直接停止,但是到判断数组中是否存在时,js的循环虽然可以停止,但是始终会执行后面的push操作,请问我该如何停止

dataAdd(thingsId){
    const moneyData = this.moneyData
    if(thingsId===''){
        this.$message.error({
            message:'请选择设备'
        })
        return 
    }
    moneyData.every(item=>{
        if(item.thingsId===thingsId){
            this.$message.error({
                message:'已有此设备'
            }) 
            return false
        }
    }) 
    // return false 只能停止循环,始终会执行虽然将数据push进去的操作,我希望像上面if一样,return回去,不执行后面的语句
        moneyData.push(JSON.parse(JSON.stringify(this.moneyForm)))
        },
  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • 简_洋 2020-04-15 09:07
    已采纳
        var status = true;
        moneyData.every(item=>{
            if(item.thingsId===thingsId){
                this.$message.error({
                    message:'已有此设备'
                }) 
                        status = false;
                return false
            }
        }) 
            if(status){
                    moneyData.push(JSON.parse(JSON.stringify(this.moneyForm)))
            }
    

    你看可否?

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • 灵动领域 2020-04-15 10:12

    你的判断已有设备跟push方法,并没有直接的联系,是设计逻辑的问题。
    判断已有设备,判断的方法返回return false,方法结束,继续执行下面的代码。(不是return,直接结束方法。)
    可以将return false 改成 return,如果状态成功与否还有其他作业,可以用另外的变量来接收,通过if判断控制push的执行。

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题