Кто-нибудь может объяснить, почему я получаю это сообщение об ошибке «Отсутствует;после инициализатора цикла for ' - PullRequest
0 голосов
/ 09 апреля 2019

Так что я вполне уверен, что код, который я использую, правильный, или, по крайней мере, этой ошибки быть не должно. Я думаю, что проблема связана с тем, что я использую код JavaScript в скрипте приложения Google.

Я пытался разместить; по запросу, где он не нарушит код, но не примет это.

function unique(rangeArray) {
    var result = [];

    for (var str of rangeArray); {// This is the line that is having issues
        if (!result.includes(str)) {
            result.push(str)
        }
    }

    return result;

    var strings = result

    Logger.log( unique(strings) ); 
}

Итак, я пытаюсь получить массив / диапазон (rangeArray), просмотреть каждый элемент массива и, если он там еще не существует, вставить его в него. Затем я хочу записать результаты, чтобы увидеть, что я получаю. Надеюсь, это закончится тем, что я получу все уникальные предметы из этого диапазона / массива.

1 Ответ

1 голос
/ 09 апреля 2019

Google Apps Script не поддерживает ES6 (и поэтому не понимает for..of или .includes).Вместо этого используйте filter:

function unique(rangeArray) {
  return rangeArray.filter(function(str, i) {
    return rangeArray.indexOf(str) === i;
  });
}

Или, для меньшей сложности, используйте объект, чтобы проверить, использовалась ли строка еще:

function unique(rangeArray) {
  const strs = {};
  return rangeArray.filter(function(str, i) {
    if (strs.hasOwnProperty(str)) {
      return;
    }
    strs[str] = true;
    return true;
  });
}

Для более общегоВ случае, если вам нравится использовать синтаксис ES6 +, но ваша среда его не поддерживает, вы можете написать код на последней версии языка, а затем автоматически перенести его в ES5 с помощью инструмента, подобного Бабель .(хотя для переноса for..of потребуется RegeneratorRuntime, который несколько тяжелее ...)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...