Пользовательская функция Google Sheets для добавления элемента в список с разделителями-запятыми - PullRequest
1 голос
/ 03 мая 2019

У меня есть разделенные запятыми списки в Google Sheet, например, "яблоко, банан". Мне нужна функция для добавления элементов в этот список, например =SETADD("apple,banana","carrot"), которая должна возвращать значение «яблоко, банан, морковь».

function SETADD(list, item) {
  var array = list.split(',');
  if (!array.includes(item)) {
    return list + ',' + item;
  }
  else {
    return list;
  }
}

Эта функция возвращает с ошибкой TypeError: Cannot find function includes in object apple,banana. (line 3). Похоже, первый аргумент функции не является строкой? Что я делаю не так?

Ответы [ 2 ]

2 голосов
/ 03 мая 2019

К сожалению, на данном этапе Array.includes() пока нельзя использовать в Google Apps Script.Итак, как обходной путь, как насчет этой модификации?

От:

if (!array.includes(item)) {

До:

if (array.indexOf(item) === -1) {

Ссылки:

1 голос
/ 03 мая 2019

Ваша проблема в том, что вы запускаете свой код в интерпретаторе, который не поддерживает include. Попробуйте использовать код es5 или переключитесь на версию узла, которая поддерживает include (согласно node.green его v6.4 +).

Я бы предложил изменить ваш код:

function SETADD(list, item) {
  var array = list.split(',');
  if (list.indexOf(','+item+',') > -1 || list.startsWith(item+',') || list.endsWith(','+item)) {
    return list;
  }
  else {
    return list + ',' + item;
  }
}

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