繁体   English   中英

Google Apps脚本<=运算符问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM