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)
        }
      })
    },
Vue3 循环语句 官网解释:当 Vue 正在更新使用 v-for 渲染的元素列表时,它默认使用“就地更新”的策略。如果数据项的顺序被改变,Vue会移动 DOM 元素来匹配数据项的顺序,而是就地更新每个元素,并且确保它们在每个索引位置正确渲染。当它们同时存在于一个节点上时,v-if 比 v-for 的优先级更高。v-for 指令需要以 site in sites 形式的特殊语法, sites 是源数据数组并且 site 是数组元素迭代的别名。有:key属性时,状态根据key的属性值绑定到了相应的数组元素。 阅读详情

相关推荐

红火蚁巢穴AI智能识别,提供方案与思路!

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 980

多层嵌套break跳出指定循环

平常break最常出现的就是在for循环或者while循环跳出到当前循环,但是在多层循环嵌套下break还能跳出指定的循环 语法结构如下 "自己定义的名称" : { for|while(){ break "自己定义的名称"; } } 实例: 定义两个数组 int[] nums1 = new int[6]; nums1[4] = 4; int[] nums2 = new int[6]; ..

持续学习,共同进步 5151

PCIExpress-Rev5p0-6p0-CopprLink-External-Cable-Spec-v1p0-Approved-April18-2024

PCIExpress_Rev5p0-6p0_CopprLink-External-Cable-Spec_v1p0-Approved-April18-2024

Vue中break关键字

可以发现这次case 3 和 case 4均被执行了,并且由于在case 3中数据已经被筛选成case 3的数据,因此在经过case 4时,数据再经过一次过滤,data就变成空。以上代码是实现下拉列表切换数据的功能,这里有一个地方需要注意,也就是每一个case都要对应一个break。下面这段代码,case "3"中没有break关键字。

xuan__xia的博客 962

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

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

Aa12364567的博客 1080

vue.js-跳出forEach循环

发现vue.js 再使用forEach时,break或return无法跳出循环。经过查阅资料,发现两种方法可以跳出循环,在此记录 方法一:使用try{...}catch(e){...} try{ var array = ["a1","b2","c3","d4"] //forEach遍历数组 array.forEach(function(item){ if(item === "b2"){ ...

ymeng1617的专栏 9737

jsvue跳出for循环

1.使用array.some() //some()当内部return true时跳出整个循环: var array = [1,2,3,4,5]; var num = 3; array.some(function(data){   if(data == num) { return true;   }   console.log(data); }); 2.使用array.every() //every()当内部return false时跳出整个循环 var array = [1,2,3,4,5];

王佑辉的博客 4990

Vue进阶(幺零七):arr.forEach() 跳出循环

我们都知道for循环里要跳出整个循环是使用break,但在数组中用forEach循环如要退出整个循环呢?使用break会报错,使用return也跳出循环。 使用break将会报错: var arr = [1,2,3,4,5]; var num = 3; arr.forEach(function(v){ if(v == num) { break; } console.log(v); }); 使...

IT全栈 华强工作室 2万+

js的for循环中return可以跳出循环,而使用forEach等可以跳出循环

描述 在vue项目中做表格增加行的时候,校验行内单元格某些字段的必填项,刚开始使用forEach进行循环遍历数组对象,然后判断对象的键值是否为空,为空则跳出循环,提示需要填写必填项,否则提示进行增加行。 forEach形式返回 isCheckRowRequired () { // 检测新增行内容必填项 // let checkArr = ['packageName', 'bidFee', 'checkPrice', 'bidStatus']; let checkArr = ['packageNam

yw00yw的博客 2049

vue foreach某条数据异常跳出循环

vue forEach中以下这种方式是无法跳出循环的,return只是结束当前这次,而后会继续下一次的循环 array.forEach(item =>{ if (item.id == 0) { return }) 那我们再看看用break array.forEach(item =>{ if (item.id == 0) { break }) 咋回事,控制台怎么报错了?! 用try-catch-finally吧,这个语法是js标准的处理异常的方式写法如下: let array = [0

Huang_John的博客 3081

vue中forEach跳出循环的问题,以及for循环

vue中forEach无法使用break和continue,会报错。 return false也无法跳出循环。 改使用for循环即可正常跳出。 for(let i = 0; i <= 10; i++){ break } //返回的是索引(键值),适合用来遍历对象,直接拿到key for(let key in Object){ break } //直接返回元素,适合用来遍历数组可用于原对象(没有索引) for(let item of Array){ bre...

weixin_57541273的博客 7633

[Vue]常见的循环处理数组方法:forEach some map filter every find等方法

*some()**是Vue 中的一个常用方法,它接收一个回调函数,回调函数接收三个参数:item当前元素、index当前索引、arr数组本身,回调有三个参数:item:遍历的数组元素 index:当前遍历的数组元素的索引值 arr:遍历的数组本身。这时候就可以用map()方法遍历原数组,返回一个新数组,组中的元素为原始元素调用函数后得到的结果。forEach()方法用于遍历数组中的每一个元素,并将元素传给回调函数,find() 对于空数组,函数是会执行的。可以通过数组的索引值来修改原数组的值。

weixin_53249168的博客 9922

VUE 循环的使用方法集锦

过滤满足条件的元素,把满足条件的元素返回一个新的数组会改变原来的数组。every遍历数组,当每一项为true时返回true,否则为false。五、every循环(return false跳出循环)六、some循环(return true跳出循环)map循环会分配内存空间,存储新的数据并返回。二、forEach循环。三、forEach循环。四、filter循环

别样的天空 1363

continue的作用

continue仅仅起到跳过本次循环体中尚未执行的语句 ,可以理解为 当条件满足 就执行continue, 仅仅结束本次循环

1051

知识共享 break的用法

break 一, 循环中的break break用来终止循环语句,即使循环条件没有False条件或者for循环没有执行完,也会停止执行循环语句,会再继续下一轮循环 流程图 例子 如若使用嵌套循环,break语句将停止执行最深层的循环,并开始执行下一行代码。 例子 二,switch中的break break 使得程序在执行完选中的分支后,可以跳出整个switch语句 如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句或switch结束 例子 ...

Lululovesickness的博客 876

vue必会知识点

目录1. vue-router路由懒加载2. vue父子组件生命周期执行顺序3. css预处理器4. js数据类型判断5. DNS解析url的过程6. 重绘和重排7. vue指令8. 导航守卫9. 甘特图 Fullcalendar10. provide/inject11. em rem px12. H5新特性13. css3新特性14. bfc15. promise和 async/await16. 箭头函数17. vuex数据持久化18. break和continue的区别和作用19. href和src2

HTML5_student的博客 2775

break,continue,return之间的区别

break,continue,return之间的区别 break 作用同 break:执行break操作,跳出所在的当前循环体。一旦在循环体中遇到break,系统将完全结束循环,开始执行循环之后的代码。 结束同 break仅可以结束其所在的循环,还可以结束其外层循环,单一次只能结束一种循环 紧跟同 需要在break后紧跟一个标签,这个标签用于识别那个外层循环 <!DOCTYPE html> <html lang="en"> <head>

Ain_z的博客 665

forEach跳出、终止循环

1、forEach跳出本次循环 可使用return语句跳出本次循环,执行下一次循环 var arr = [1,2,3,4,5,6] arr.forEach((item) => { if (item === 3) { return } console.log(item) }) 将输出 1 2 4 5 6,3会输出 2、forEach终止循环 forEach无法通过正常流程(如break)终止循环,但可通过抛出异常的方式实现终止循环 var arr = [1,2,3,4,

qq_34458968的博客 3万+

break、continue和return的区别

break:退出最内层循环或者退出switch语句,表示执行这个循环执行switch语句了; continue:退出当前循环,重新开始执行下一次的循环 return:退出正在执行的函数

菜鸟丹丹的博客 504

break和continue的使用

1.break 用于终结整个循环 <script type="text/javascript"> // break 跳出整个循环 for(var i = 0;i <= 10;i++){ if(i == 5){ break; } console.log(i); // 打印0,1,2,3,4,当i=5的时候就跳出循环 } </script> 2.continue 用于跳出当前循环 <script typ

Vinsmoker_Sanji的博客 211
上一篇: js两个数组对应整合成table数据显示
下一篇: vue 动态添加、修改、删除某一条数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值