首頁  >  問答  >  主體

for 迴圈中的“TypeError ..未定義”

我正在使用 BootstrapVue

我想做的事:我有一個 b-form-input ,我在其中寫了一個數字。點擊我的 b-button 後,我想將其新增到我的 inputs 中。這很好用,但現在我想先檢查我的號碼是否仍在我的 inputs 中。

問題:嘗試在我的inputs 新增某些內容後,我總是收到以下錯誤:[Vue warn]:v-on 處理程序錯誤:「TypeError:this.inputs[i] 未定義」 「

我已經聲明我的資料中的所有內容都是正確的,並且沒有 for-loop 它運作良好。這裡有什麼錯誤?我無法弄清楚..

當我嘗試這樣做時:this.inputs[0].number 我得到了正確的資料..

感謝您嘗試幫助我!

我的模板中的程式碼:

<b-form-input v-model="number"></b-form-input>
<b-button @click="addSomething(number)"></b-button>

我的腳本中的程式碼:

addSomething(number) {
  if(this.inputs != []) {
    for(let i = 0; i <= this.inputs.length; i++) {
      if(number === this.inputs[i].number) {
        console.log("Still existing!");
      } else if(number !== this.inputs[i].number) {
        this.inputs.push({
          INPUT_NUMBER: number,
        })
      }
    }
  }
},

P粉099145710P粉099145710206 天前397

全部回覆(1)我來回復

  • P粉421119778

    P粉4211197782024-03-27 12:29:11

    使用條件 i <= this.inputs.length 您正在超出陣列的範圍。在 JavaScript 中,對陣列進行過度索引會傳回 undefined

    固定處理程序應該是:

    addSomething(number) {
      if(this.inputs != []) {
        for(let i = 0; i < this.inputs.length; i++) {
          if(number === this.inputs[i].number) {
            console.log("Still existing!");
          } else if(number !== this.inputs[i].number) {
            this.inputs.push({
              INPUT_NUMBER: number,
            })
          }
        }
      }
    },

    回覆
    0
  • 取消回覆