js | label是什么,在循环中有什么用

在看《JavaScript高级程序设计》第三版的第三章时发现label语句,在平常学习js基本没有遇见,经过学习和练习,label与break、continue结合可以节省一些步骤,废话不多说直接上码。

先来一个正常的for循环:

 var num = 0;
        for (var i = 0 ; i < 10 ; i++){
             for (var j = 0 ; j < 10 ; j++){
                num++;
             }
        }
        alert(num); // 100

经过双层循环后,num为100,这里应该没有什么问题

加入break:
 

var num = 0;
        for (var i = 0 ; i < 10 ; i++){
            console.log("i="+i)
             for (var j = 0 ; j < 10 ; j++){
                console.log("j="+j) 
                  if( i == 5 && j == 5 ){
                        console.log("i,j=5")
                        break;
                  }
                num++;//95             
             }
        }
        console.log(num);

循环在 i 为5,j 为5的时候跳出 j循环,但会继续执行 i 循环,所以num少了五次++的数,输出 95

加入continue:
 

 var num = 0;
        for (var i = 0 ; i < 10 ; i++){
            console.log("i="+i)
             for (var j = 0 ; j < 10 ; j++){
                console.log("j="+j) 
                  if( i == 5 && j == 5 ){
                        console.log("i,j=5")
                        continue;
                  }
                num++;//99             
             }
        }
        console.log(num);

输出为99,在i=5,j=5时跳过,但是继续j=6的操作,所以num只缺少一次++

上面两个例子说明了正常情况下加入break和continue,两种不同的跳出循环。而label在代码中添加标签,与break和continue联合使用,从而返回代码中特定的位置。

在带break的语句中加入label:

 var num = 0;
        outPoint://这里为label,标签名为outPoint
        for (var i = 0 ; i < 10 ; i++){
            console.log("i="+i)
            for (var j = 0 ; j < 10 ; j++){
                console.log("j="+j) 
                if( i == 5 && j == 5 ){
                        console.log("i,j=5")
                        console.log(num) 
                        break outPoint;
                }
            num++;//55
            }
        }
        console.log(num); 

循环在 i 为5,j 为5的时候跳出双循环,返回到outPoint层继续执行除循环外的接下来的操作,输出 55

在带continue的语句中加入label

 var num = 0;
        outPoint:
        for (var i = 0 ; i < 10 ; i++){
            console.log("i="+i)
            for (var j = 0 ; j < 10 ; j++){
                console.log("j="+j) 
                if( i == 5 && j == 5 ){
                        console.log("i,j=5")
                        console.log(num) 
                        continue outPoint;
                }
            num++;//95
            }
        }

输出95,循环在 i 为5,j 为5的时候跳出双循环,返回到outPoint层继续执行未结束的循环,即从i=6开始,num只跳过了五次++

 

需要注意的不要过度使用label会给调试带来麻烦,使用时要有描述性的标签,也同时不要嵌套过多的循环。

`el-form` 是 Element UI 的一个表单组件,它提供了一种组织和验证复杂表单的方式。`label` 校验通常指的是当用户填写表单时,与 `el-form-item` 结合使用的 `label` 属性可以用来指定验证规则。例如,你可以设置一个必填规则,如果用户没有输入内容,那么关联的提示信息会在验证失败时显示。 对于循环校验,假设你有一个数组或者列表需要在一个表格或列表结构进行表单验证,比如每个元素都需要单独验证,这时你可以通过动态渲染 `el-form` 和 `el-form-item` 来实现。你可以遍历这个数组,为每个元素创建一个新的表单项,并给每个 `label` 或者对应的验证规则设置特定的值。Element UI 提供了 `v-for` 指令配合 Vue.js 的数据绑定来轻松地处理这种情况。 一个简单的例子可能是: ```html <template> <el-form v-model="formItems" :inline="true"> <el-row v-for="(item, index) in itemsToValidate" :key="index"> <el-col> <el-form-item label="标题{{index + 1}}">{{ item.title }}</el-form-item> <!-- 这里可以添加其他字段及其对应验证规则 --> <el-form-item prop="content[{{index}}]" rules="required">内容{{index + 1}}</el-form-item> </el-col> </el-row> </el-form> </template> <script> export default { data() { return { formItems: {}, // 初始化一个空的对象存储表单数据 itemsToValidate: [ { title: '' }, { content: '' } // 省略更多... ] }; } }; </script> ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值