我正在尝试检查数组中是否存在数字(在使用.indexOf()
之前我已经完成了一千次)但我现在似乎缺少了一些东西。
方法视图
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);
的末尾添加一个分号,你应该没问题。