Почему indexOf () не работает внутри .map () с использованием листов Google? - PullRequest
1 голос
/ 19 октября 2019

Я пытаюсь автоматически назначить категории из банковской выписки. Я наметил банковские описания на 10 месяцев для категорий, однако некоторые описания изменились в зависимости от даты. Поэтому мое решение состояло в том, чтобы проверить его на предмет соответствующей информации, используя indexOf (), например так.

var descriptions = {
  //...key value pairs
  "Walgreens #12345   London   UK": "Medical Needs" //Example of repeating description
  "Hulu": "Subscriptions", // Example of description that needs to find a substring with indexOf()
  //...more key value pairs
}

function assignCategory(range) {
  return range.map(function (desc) {
    if (descriptions[desc]) {
      return descriptions[desc];
    }
    else if (desc.indexOf("Hulu") !== -1) { //Hulu changes based on the date but always has hulu in it.
      return descriptions["Hulu"]; //Look up the value to the associated key and add it to the array.
    }
    else {
      return "UNKNOWN";
    }
  });
}

Если я вызываю функцию indexOf () вне .map (), она работает безупречно, и из всего, что яможно увидеть, что он должен работать внутри .map (), за исключением какого-то странного редактора сценариев Google за кулисами или JavaScript. Кто-нибудь может обучить меня?

** Редактировать по @ Tanaike

Date       No.  Description                  Debit       Credit     Category
9/3/2019        Purchase Description One     $ 40.00                Eating Out
9/3/2019        Purchase Description Two     $ 100.00               Grocery
9/3/2019        Purchase Description Three   $ 2.69                 Misc

Где каждый заголовок соответствует столбцу в электронной таблице:

  • A - Дата
  • B - №
  • C - Описание
  • D - Дебет
  • E - Кредит
  • F - Категория

Я мог бы предоставить вам сценарий, но это в буквальном смысле ничего более того, что я уже опубликовал. Словарь описания пар ключ / значение и одной функции 'assignCategory (range).

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