Vue JS-indexOf数组不是函数

时间:2019-02-24 14:18:19

标签: javascript arrays vue.js indexof

我正在尝试检查数组中是否存在数字(在使用.indexOf()之前,我已经做了一千遍了),但现在似乎丢失了一些东西。

Vue方法

showSeat(seat) {
    if( !this.selectedSeats.length ) { 
        this.selectedSeats.push(seat)
    } else {
        let index = this.selectedSeats.indexOf(seat)
        ( index >= 0 ) ? this.selectedSeats.splice(index,1) : this.selectedSeats.push(seat)
    }
}

最初,this.selectedSeats等于[],并且第一个条件完美运行。但是,当我尝试添加另一个 seat 时,我得到[Vue warn]: Error in event handler for "showSeat": "TypeError: this.selectedSeats.indexOf(...) is not a function"。我想念什么?

1 个答案:

答案 0 :(得分:4)

这是JavaScript中罕见的情况之一,其中省略分号可能会导致巨大的问题。这两行作为单个表达式求值:

 let index = this.selectedSeats.indexOf(seat)
 ( index >= 0 ) ? this.selectedSeats.splice(index,1) : this.selectedSeats.push(seat)

它正在尝试执行this.selectedSeats.indexOf(seat)(index>=0)

indexOf(seat);的末尾添加分号,您应该没事。