#google-apps-script
#google-apps-script
Вопрос:
У меня есть эта функция, которая возвращает все листы, которые не содержат *.
Я хотел бы заменить некоторый текст в результатах.
Результаты показывают все мои листы без *, например «Клиент <25», «Клиент <50» и т. Д
Я хочу получить результат: «< 25», поэтому удалите из него «Клиент».
function SheetNamesFiltered(avoid_memoization) {
return SpreadsheetApp.getActiveSpreadsheet().getSheets()
.map(sheet => [sheet.getName()])
.filter(sheetName => !sheetName[0].match(/*/));
}
Я пробовал следующее, но это не работает
function SheetNamesFiltered(avoid_memoization) {
return SpreadsheetApp.getActiveSpreadsheet().getSheets()
.map(sheet => [sheet.getName()].replaceText("Client ", ""))
.filter(sheetName => !sheetName[0].match(/*/));
}
Спасибо!
Ответ №1:
Вместо того, чтобы делать replaceText
это во время map, я разделил их. Во-первых, получение sheetName
с помощью no *
, а затем удаление Client using replace
во всех результатах.
function SheetNamesFiltered(avoid_memoization) {
var array = SpreadsheetApp.getActiveSpreadsheet().getSheets()
.map(sheet => [sheet.getName()])
.filter(sheetName => !sheetName[0].match(/*/));
// Separated replacement in every item in array result
array.forEach(function(item){
item[0] = item[0].replace("Client ", "");
});
Logger.log(array);
}
Вывод:
Листы:
Комментарии:
1. Большое спасибо! Я просто изменил конец, чтобы вернуть результат с помощью возвращаемого массива;