因此,我正在为Google表格编写一个自定义函数,该函数应该采用一行或单元格,生成一维数组,并使用该数据创建URL。基本上是这样,因此我可以帮助我的朋友跟踪视频游戏中某件商品的价格。
我已经在Google表格之外的javascript环境中运行了代码,并且一切正常。但是,当我将代码放在脚本编辑器中时,它会以意外的行为运行。单元格的范围将始终为1行乘13列,但某些列可能为空,因此该脚本应截断值数组,以便没有空索引。然后应该插入一个“。”在将每个值连接成字符串以产生最终URL时,它们之间的关系。由于某些原因,它不会删除任何值和“。”。在单元格中创建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
之前,所有逗号将替换为点。尽管如此,对问题的任何见解将不胜感激。再次谢谢你。
[将值存储在电子表格中时,具有,
的值将被视为strings
,而具有.
的值将被视为numbers
。
例如,如果您将这些值存储在B
列中:
如果登录typeof(val1)
和typeof(val2)
(其中val1
和val2
分别是存储在B1
中的值B2
,这将是您得到的:
所以您遇到的问题是由于这个事实。工作表中存储的值是数字,当您尝试构建webLink
字符串时,它们将转换为字符串-因此,数字的.
变为,
。