Метод .include () не является ошибкой функции - PullRequest
0 голосов
/ 10 ноября 2018

Я изучаю Eloquent Javascript, и у меня есть следующий код в качестве одного из упражнений.

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.include не является функцией

О чем это? Я не могу найти ответ.

1 Ответ

0 голосов
/ 10 ноября 2018

Из документов ,

Метод push () добавляет один или несколько элементов в конец массива и возвращает новую длину массива.

Следовательно, проблема в этой строке. this.arr больше не является массивом после этой строки.

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

Итак, обновите это до следующего

this.arr.push(value)
...