谷歌脚本连接而不是添加
Google Scripts Concatenating rather than adding
当我运行脚本而不是添加我认为应该是两个数字时,它会连接。。。
我觉得我在看Abbot和Costello的戏。https://www.youtube.com/watch?v=9o1SAS8KyMs
var weekNum = e.parameter.weekListBox;
weekNum = weekNum + 3;
weekListBox的值从1到15。我正试图把它抵消3。
然而,1+3得到13,而不是我所期望的4。让我发疯,直到我意识到为什么会发生这种事。
那么我该如何添加呢?
感谢
事实证明,这是唯一对我有效的解决方案……非常奇怪的问题。
谷歌电子表格脚本getValues-强制int而不是字符串
由蹄目回答
使用一元"+"运算符可以很容易地做到这一点,如下所示:
首先使用getValue()或getValues()。假设您得到两个这样的值,并将它们存储在A=1中并且B=2。您可以通过使用数学二进制运算符,除了+,它连接字符串,所以A-B=-1,而A+B将返回"12"。
只需使用+一元即可强制变量为数字具有任何可能被解释为字符串的变量的运算符。对于例如,+A++B将返回正确的值3。
上面的答案解释了这个问题,但没有提供解决方案(注释中除外,但parseInt()
不是唯一/最好的解决方案)。
出现此问题的原因是e.parameter.weekListBox;
返回的值实际上是一个字符串(除了日期对象之外,实际上总是这样),因此得到的结果是正常的字符串串联(字符串+数字=新字符串)。
一个简单的解决方案是如下更改代码:
var weekNum = Number(e.parameter.weekListBox);// make it a number
weekNum = weekNum + 3;// and the result will be a sum
参见
function myFunction() {
var aa = 1;
var ab = aa + 3;
var ba = "1";
var bb = ba + 3;
}
ab=4但是bb="13"
相关文章:
- ScriptManager.RegisterStartupScript保持多次添加脚本块
- 如何在 JavaScript 中的 HTML head 标记中动态添加脚本值
- 添加脚本包括一个顶点:组件
- 如何在正文元素之前添加脚本
- 如何使用 javascript 添加脚本代码
- 如何使用javascript在子窗口中添加脚本文件
- 在 CakePHP 中,现在 View->addScript() 已被弃用,我如何向我的布局添加脚本*一次*
- 在页面加载 c# 上添加脚本
- 如何在 iframe for jQuery 中添加脚本元素
- 如何在 PHPBB3 Teamplate 中动态添加 <脚本> 标签
- 在页面 JavaScript 中动态添加脚本
- 如何从HTML字符串动态添加脚本到网页
- Javascript性能-使用$.getScript()添加脚本
- 动态添加脚本时未定义$/jQuery
- Google+Business帐户,添加脚本以自动将同事添加到新用户的同事圈中
- 添加<脚本>元素时,CSS 翻译过渡停止工作
- 不能在header中添加脚本
- 在window.onload后添加脚本src
- 添加脚本路径到xslt文件
- 如何在html文件中添加脚本标签,在jquery.js被包含之后,但在结束正文标签之前只使用javascript