Я пытаюсь автоматически назначить категории из банковской выписки. Я наметил банковские описания на 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).