Почему я получаю неожиданный токен при использовании логического AND в операторе if? - PullRequest
0 голосов
/ 04 апреля 2019

Я пытаюсь перебрать массив, в котором хранятся экземпляры конструктора с несколькими значениями свойств, используя оператор if.

Я использую логический оператор AND, чтобы убедиться, что 2 условия выполнены, но я продолжаю получать сообщение Uncaught SyntaxError:

Неожиданный токен со вторым оператором логического условия.

Я использовал это раньше и никогда не имел этой проблемы, поэтому не понимаю, почему сейчас?Я все еще изучаю Javascript, но похоже, что это должно быть довольно просто?

Я пытался удалить оператор, который выдает сообщение, но это оставляет меня с одним условием.

class Streets {
    constructor(name, area) {
        this.name = name;
        this.area = area;
    }
}

const street1 = new Streets('Brookwood Glen', 500);
const street2 = new Streets('Abbey Street', 1500);
const street3 = new Streets('Grafton Street', 3000);
const street4 = new Streets('Drury Street', 5000);

const totalStreets = [street1, street2, street3, street4];

function getStreetSize() {
    for(let cur of totalStreets) {
        if(cur.area > 0 && <= 500) { //This line is where I get the error message
            console.log(`${cur.name} has a length of ${cur.size}m and is a tiny street.`);
        } else if(cur.area > 500 && =< 1000) {
            console.log(`${cur.name} has a length of ${cur.size}m and is a small street.`);
        } else if(cur.area > 1000 && =< 1500) {
            console.log(`${cur.name} has a length of ${cur.size}m and is a normal street.`);
        } else if(cur.area > 1500 && =< 2000) {
            console.log(`${cur.name} has a length of ${cur.size}m and is a big street.`);
        } else if(cur.area > 2000) {
            console.log(`${cur.name} has a length of ${cur.size}m and is a huge street.`);
        } else {
            console.log(`${cur.name} is a normal street`);
    }
}
}

Я ожидаю, что цикл for будет проходить по элементам в массиве totalStreets и оценивать, находится ли значение 'area' между двумя условиями, и выводить соответствующий оператор в консоль, но он не позволяет мнеиспользуйте операторы меньше / больше чем *

Ответы [ 2 ]

2 голосов
/ 04 апреля 2019

Необходимо иметь действительное выражение на каждой стороне AND.

=< 1000 не является допустимым выражением, левая сторона отсутствует.

Вы не можете подразумевать значение для LHS =< из LHS > в другом выражении.Вы должны заявить это явно.

cur.area > 500 && cur.area =< 1000
0 голосов
/ 04 апреля 2019

Вам необходимо поставить cur.area <= 500 после &&

Вам также следует заменить =< на <=

...