Vue JS - indexOf 数组不是函数

Vue JS - indexOf array is not a function

我正在尝试检查数组中是否存在数字(在使用 .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 等于 [],并且第一个条件完美运行。但是,当我尝试添加另一个 座位 时,我得到 [Vue warn]: Error in event handler for "showSeat": "TypeError: this.selectedSeats.indexOf(...) is not a function"。我错过了什么?

这是 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); 末尾添加一个分号,你应该没问题。