Vue JS - indexOf数组不是函数

问题描述 投票:0回答:1

我正在尝试检查数组中是否存在数字(在使用.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 arrays vue.js indexof
1个回答
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);的末尾添加一个分号,你应该没问题。

© www.soinside.com 2019 - 2024. All rights reserved.