vue數組中不滿足條件跳出循環問題

目錄 vue數組中不滿足條件跳出循環 場景 分析 解決方式 實現 vue數組循環遍歷中途跳出整個循環 總結 vue數組中不滿足條件跳出循環 場景 在表格中選中的數據在右邊顯示,在點擊確定按
目錄
  • vue數組中不滿足條件跳出循環
    • 場景
    • 分析
    • 解決方式
    • 實現
  • 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
              }
            });
          },

      總結

      以上為個人經驗,希望能給大家一個參考,也希望大家多多支持技圈網。

      聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。
      發表評論
      更多 網友評論0 條評論)
      暫無評論

      返回頂部

      主站蜘蛛池模板: 少妇无码太爽了在线播放| narutomanga玖辛奈本子| 99久久精品费精品国产一区二区| 精品国内自产拍在线视频| 欧美一区二区福利视频| 国产精品日本一区二区在线播放| 初女破苞国语在线观看免费| 两个人看的视频www在线高清| 老司机成人精品视频lsj| 搞av.com| 午夜久久久久久| 五月婷婷综合色| 黄色一级毛片网站| 月夜直播手机免费视频高清| 在逃生游戏里挨c海棠小说| 免费又黄又爽1000禁片| 久久99国产一区二区三区| 96xxxxx日本人| 欧美日韩亚洲国产精品一区二区| 成人区人妻精品一区二区不卡网站| 噗呲噗呲好爽轻点| 久久午夜国产片| 国产成人愉拍精品| 熟妇人妻中文字幕| 国产色综合久久无码有码| 亚洲国产一区二区三区在线观看 | 国产一区二区三区福利| 亚洲一区二区三区亚瑟| 5╳社区视频在线5sq| 欧美videos另类极品| 国产色丁香久久综合| 亚洲av永久精品爱情岛论坛 | 天堂mv在线看中文字幕| 国产一卡2卡3卡四卡精品一信息| 久久国产精品亚洲综合| 贱妇汤如丽全篇小说| 欧美高清在线精品一区二区不卡| 在线观看噜噜噜私人影院| 再深点灬舒服灬太大了添a| √新版天堂资源在线资源| 污污的软件下载|