Я реализую пользовательскую функцию в скрипте приложений.
Чтобы разрешить использование функции в качестве формулы массива в Google Sheets, я использую следующий шаблон для функции:
function myfunction(input) {
if (input.map) { // Test whether input is an array.
return input.map(myfunction); // Recurse over array if so.
} else {
// Handle individual values here...
}
}
Это позволяет настраиваемой функции принимать диапазон в качестве входных данных в виде двумерного массива, а затем возвращает двумерный массив, который может переполниться в соответствующие ячейки. Это задокументировано здесь.
Однако с помощью приведенного ниже кода я не использую "input", я использую "url", который, как я считаю, является источником моих проблем. Я выдаю ошибку: Attribute provided with no value: url (line 5)
.
function getRedirect(url) {
if (url.map) {
return url.map(getRedirect);
} else {
var response = UrlFetchApp.fetch(url, {'followRedirects': false, 'muteHttpExceptions': false});
var redirectUrl = response.getHeaders()['Location']; // undefined if no redirect, so...
var responseCode = response.getResponseCode();
if (redirectUrl) { // ...if redirected...
var nextRedirectUrl = getRedirect(redirectUrl); // ...it calls itself recursively...
Logger.log(url + " is redirecting to " + redirectUrl + ". (" + responseCode + ")");
return nextRedirectUrl;
} else { // ...until it's not
Logger.log(url + " is canonical. (" + responseCode + ")");
return url;
}
}
}
Что я могу сделать, чтобы это исправить?