SyntaxError Неожиданный токен, если внутри функции - PullRequest
0 голосов
/ 18 марта 2020

Я сейчас учусь javascript (используя Google Script в настоящее время), я чувствую, что это простая ошибка, но я не могу найти способ обойти это.

Код ниже работает , если я установлю «цвет var» к коду цвета. Но когда я изменяю это на утверждение if, я получаю проблему. Я пробовал несколько разных форматов и продолжал иметь ту же проблему ...

Для информации, он просто получает несколько строк из электронной таблицы, а затем форматирует выбранные строки и отображает их для пользователя.

//Example of part of working code:
  if(Line.length == 0){
  var Line = lines 
  .slice(1)
  .filter(function(row) { return row[4] == e.message.text;})
  .map(function(row) {
    var colour = if(row[6]=1){return "#ff0000"};
    return '<b>' + row[3] + '</b> ('+ row[1] + ' or ' +row[2] + ')' + '\n' + '<font color=' + colour + '>Region: ' + row[6] + "</font>";
  });
  } 

1 Ответ

2 голосов
/ 18 марта 2020

Существует разница между выражениями и выражениями .

Также как вы можете положить яблоки в корзину, а не корзины в яблоко, вы можете поместить выражения в выражении, но не в выражениях.

var colour = ... - это утверждение, которое ожидает выражение в правой части знака равенства. Вы не можете поместить туда заявление if. Вы можете использовать условный оператор для создания условного выражения:

var colour = row[6] == 1 ? "#ff0000" : "#000000";

Или вы можете использовать полный оператор if для выполнения двух вариантов операторов присваивания:

var colour;
if (row[6] == 1) {
  colour = "#ff0000";
} else {
  colour = "#000000";
}

Обратите внимание, что return #ff0000 вернул бы буквально "#ff0000", а не текст с цветом #ff0000, как я полагаю, вы хотите; также обратите внимание, что row[6] = 1 будет присваивать 1 row[6], а не сравнивать.

...