[英]Google Apps Script <= operator issue
我们正在编写一个函数,以W#-W#的格式(例如W1-10,W3-13等)从Google Spreadsheet列中解析星期编号指定。由于某些原因,应用脚本几乎将<=运算符好像它是=运算符。
功能:
for (var row = 0; row < qBow.length; row++) {
var wRange = qBow[row][6];
var wRsplit = wRange.split('W').join('');
var wNums = wRsplit.split('-');
var currentWnum = activeSheet.getName().substring(1);
Logger.log('row: ' + row + ' currentWnum: ' + currentWnum + ' wNums[0]: ' + wNums[0] + ' wNums[1]: ' + wNums[1]);
if (currentWnum >= wNums[0] && currentWnum <= wNums[1]) {
Logger.log('row: ' + row + ' currentWnum: ' + currentWnum + ' wNums[0]: ' + wNums[0] + ' wNums[1]: ' + wNums[1]);
}
}
第一个Logger.log()的示例输出:
row: 8 currentWnum: 4 wNums[0]: 3 wNums[1]: 13
...
row: 12 currentWnum: 4 wNums[0]: 4 wNums[1]: 13
...
row: 18 currentWnum: 4 wNums[0]: 3 wNums[1]: 13
...
row: 20 currentWnum: 4 wNums[0]: 3 wNums[1]: 13
来自第二个Logger.log()的完整输出:
row: 106 currentWnum: 4 wNums[0]: 4 wNums[1]: 5
row: 138 currentWnum: 4 wNums[0]: 2 wNums[1]: 4
row: 139 currentWnum: 4 wNums[0]: 2 wNums[1]: 4
row: 151 currentWnum: 4 wNums[0]: 3 wNums[1]: 4
如您所见,它跳过了所有行,除了currentWnum等于wNum [1]的行和一行wNum [1]等于5的行。我们在条件语句中替换了wNums [1]进行了测试带有静态数字,并且行为正确。 有什么想法吗?
似乎您在字符串上使用<=
。 我希望按字典顺序进行比较-例如,“ 13”小于“ 4”。
我建议您在执行任何比较之前将所有值转换为数字(例如,使用parseInt
)。 这将适用于wNums
每个元素以及currentWnum
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.