方法.includes()不是函数错误

时间:2018-11-10 18:27:21

标签: javascript function methods include typeerror

我正在通过Eloquent Java语言学习,并且我有以下代码作为练习之一。

class Group {
constructor(){
    this.arr = []
}

add(value){
    if(!this.has(value)) {
        this.arr = this.arr.push(value)
    }
}

has(value){
    return this.arr.includes(value);
}

delete(value){
    this.arr = this.arr.filter(n => n !== value)
}

static from(collection){
    let rec = new Group;
    for (let value of collection){
        rec.add(value)
        }
return rec
    }
}

似乎正确,应该可以,但是我得到了错误

  

TypeError:arr.includes不是函数

那是什么意思?我找不到答案。

1 个答案:

答案 0 :(得分:1)

https://istio.io/docs/tasks/traffic-management/request-routing/

  

push()方法将一个或多个元素添加到数组的末尾,然后   返回数组的新长度。

因此,问题出在这一行。 this.arr不再是此行之后的数组。

this.arr = this.arr.push(value)

因此,将其更新为以下内容

this.arr.push(value)