Итак, я пишу пользовательскую функцию для листов Google, которая должна занимать одну строку или ячейки, создавать одномерный массив и использовать эти данные для создания URL. Это в основном так, чтобы я мог помочь своим друзьям отследить цены на предмет в видеоигре.
Я запускал код в среде javascript за пределами Google Sheets, и все действовало так, как ожидалось. Но когда я помещаю код в редактор сценариев, он работает с неожиданным поведением. Диапазон ячеек всегда будет 1 строка на 13 столбцов, но некоторые столбцы могут быть пустыми, поэтому предполагается, что скрипт усекает массив значений, чтобы не было пустых индексов. Затем предполагается вставить «.» между каждым значением, поскольку оно объединено в строку для получения окончательного URL. По какой-то причине он не удаляет какие-либо значения и "." are "," s, когда URL создается в ячейке.
Вот код:
function STONKLINK(prices, premrkt) {
var webLink = "https://turnipprophet.io?prices=";
var priceLink = "";
for (i = (prices.length - 1); prices[i] == 0; i--){
prices.pop();
}
for (i = 0; i < prices.length; i++) {
priceLink = (priceLink + prices[i] + ".")
}
priceLink = priceLink.substring(0, priceLink.length - 1);
if (premrkt == "N/A") {
webLink = webLink + priceLink;
} else if (premrkt == "Fluctuating") {
webLink = webLink + priceLink + "&pattern=0";
} else if (premrkt == "Small Spike") {
webLink = webLink + priceLink + "&pattern=3";
} else if (premrkt == "Large Spike") {
webLink = webLink + priceLink + "&pattern=1";
} else if (premrkt == "Decreasing") {
webLink = webLink + priceLink + "&pattern=2";
}
return webLink;
}
Любая помощь очень ценится. Большое вам спасибо.
РЕДАКТИРОВАТЬ: Хотя я до сих пор не понимаю, почему это происходит, и я хотел бы понять, я добавил простую работу вокруг. Если добавить эту строку кода
webLink = webLink.replace(/,/g, ".");
перед return
, все запятые будут заменены точками. Тем не менее, любое понимание проблемы будет высоко ценится. Еще раз спасибо.