vue数组中不满足条件跳出循环问题

 更新时间:2023年07月12日 17:11:31   作者:Lemon今天学习了吗  
这篇文章主要介绍了vue数组中不满足条件跳出循环问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

vue数组中不满足条件跳出循环

场景

在表格中选中的数据在右边显示,在点击确定按钮时,循环判断没有填写条件名称的数据,第一个不满足条件的显示输入框,且只弹出一次警告。

分析

在vue项目中,循环多数习惯会用forEach、map等方法去遍历数组,但是大家会发现在forEachforEachforEach和map中使用break和continue不仅不能调出整个循环 ,还会报错,使用return也不行。

解决方式

1. 使用for循环 ;

// 普通for循环
for(let i  = 0; i <= 5; i++){
    break
}
//遍历对象:for in 返回的是索引(键值),直接拿到key
for(let key in Object){
    break
}
//遍历数组: for of 返回元素,不可用于原对象(没有索引)
for(let item of Array){
    break
}

2. 使用try-catch-finally处理forEach的循环;

try{ 
 // 可能会导致错误的代码
} catch(error){ 
 // 在错误发生时怎么处理
} finally {
 // 只要代码中包含 finally 子句,那么无论try 还是catch 语句块中的return 语句都将被忽略。
}
let arr= [1, 2, 'lemon', 4, 5,'666']
try {
   arr.forEach(item => {
        // 元素达到条件时需要抛出的异常,再catch中处理
        if (item === 'lemon') {
            throw new Error("lemon")
        } else {
            throw new Error("other")
        }
  })
} catch (e) {
    // 异常抛出时你想要做的操作
    console.log(e.massage);
} finally {
    console.log(1) //一定会执行的操作
}

3. 使用some方法return true跳出循环,数组里面所有的元素有一个符合条件就返回true;

let arr = [1, 2, 'lemon', 4, 5,'666']
arr.some((item) => {
    if (item === 'lemon') {
        return true
    }
})

4. every()使用return false 跳出循环,数组里面所有的元素都符合条件就返回true;

let arr = [1, 2, 'lemon', 4, 5,'666']
arr.every((item) => {
    if (item === 'lemon') {
        return false
    } else {
        return true
    }
})

实现

综上所述,最终使用some方法对于上面需求实现是最简单便捷的。

    //提交  this.selectedArr:选中的数据
    async submit() {
      if (this.selectedArr.length > 0) {
        this.btn_loading = true
        this.selectedArr.some((item) => {
            if (!item.name) {
                // 显示输入框
              this.selctEditClick(item)
              this.$message.warning('条件名称不能为空')
              this.btn_loading = false
              return true
            }
        }) 
      } else {
          this.$message.warning('请选择要添加的条件数据')
      }
    },
     // 选中数据字段编辑
    selctEditClick(data) {
      this.selectedArr.forEach((item) => {
        this.$set(item, 'isEdit', false)
        if (item.keyId == data.keyId) {
          this.$set(item, 'isEdit', true)
        }
      })
    },

vue数组循环遍历中途跳出整个循环

vue数组循环遍历中途跳出整个循环,使用some进行循环,return true时,跳出整个循环

judgePoint(arr) {
      if (this.haveError) {
        this.haveError = false
      }
      arr.some((item, index) => {
        if (item.x.match(/^(\-|\+)?(((\d|[1-9]\d|1[0-7]\d|0{1,3})\.\d{0,6})|(\d|[1-9]\d|1[0-7]\d|0{1,3})|180\.0{0,6}|180)$/)) {
          if (!item.y.match(/^(\-|\+)?([0-8]?\d{1}\.\d{0,6}|90\.0{0,6}|[0-8]?\d{1}|90)$/)) {
            this.$message({
              type: 'warning',
              message: '点' + (index + 1) + '纬度为-90~90,小数限6位'
            })
            this.haveError = true
            return true
          }
        } else {
          this.$message({
            type: 'warning',
            message: '点' + (index + 1) + '经度为-180~180,小数限6位!'
          })
          this.haveError = true
          return true
        }
      });
    },

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 深入浅析golang zap 日志库使用(含文件切割、分级别存储和全局使用等)

    深入浅析golang zap 日志库使用(含文件切割、分级别存储和全局使用等)

    这篇文章主要介绍了golang zap 日志库使用(含文件切割、分级别存储和全局使用等),本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • VUE跳转外部链接与网页的方法示例

    VUE跳转外部链接与网页的方法示例

    这篇文章主要给大家介绍了关于VUE跳转外部链接与网页的方法,记录一下在vue项目中如何实现跳转到一个新页面,需要的朋友可以参考下
    2023-06-06
  • vue如何实现表单多选并且获取其中的值

    vue如何实现表单多选并且获取其中的值

    这篇文章主要介绍了vue如何实现表单多选并且获取其中的值问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • vue实现web滚动条分页

    vue实现web滚动条分页

    这篇文章主要为大家详细介绍了vue实现web滚动条分页,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • vue父组件传值子组件报错Avoid mutating a prop directly解决

    vue父组件传值子组件报错Avoid mutating a prop directly解决

    这篇文章主要为大家介绍了vue父组件传值子组件报错Avoid mutating a prop directly解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • Vue自定义名称下载PDF的方法

    Vue自定义名称下载PDF的方法

    这篇文章主要介绍了Vue自定义名称下载PDF,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • vue @scroll监听滚动条事件方式

    vue @scroll监听滚动条事件方式

    这篇文章主要介绍了vue @scroll监听滚动条事件方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • Vue在 Nuxt.js 中重定向 404 页面的方法

    Vue在 Nuxt.js 中重定向 404 页面的方法

    这篇文章主要介绍了Vue在 Nuxt.js 中重定向 404 页面的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-04-04
  • element-ui中如何给el-table的某一行或某一列加样式

    element-ui中如何给el-table的某一行或某一列加样式

    本文主要介绍了element-ui中怎么给el-table的某一行或某一列加样式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • Element Cascader 级联选择器的使用示例

    Element Cascader 级联选择器的使用示例

    这篇文章主要介绍了Element Cascader 级联选择器的使用示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07

最新评论