【问题标题】:"TypeError .. is undefined" in for loopfor循环中的“TypeError ..未定义”
【发布时间】:2022-01-19 09:10:26
【问题描述】:

我正在与BootstrapVue 合作。

我要做什么:我有一个b-form-input,我在其中写了一个数字。单击我的b-button 后,我想将其添加到我的inputs。这很好用,但现在我想先检查我的 number 是否仍在我的inputs 中。

问题:尝试向我的inputs 添加内容后,我总是收到以下错误:[Vue warn]: Error on v-on handler: "TypeError: this.inputs[i] is undefined"

我已在我的数据中声明一切正确,并且没有 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,
        })
      }
    }
  }
},

【问题讨论】:

    标签: javascript vue.js vuejs2 bootstrap-vue


    【解决方案1】:

    i &lt;= 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,
            })
          }
        }
      }
    },
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-21
      • 2011-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多