Google Apps 脚本 <= 运算符问题

Google Apps Script <= operator issue

我们正在编写一个函数来解析格式为 W#-W#(例如 W1-10、W3-13 等)的 Google 电子表格列中的周数指定。出于某种原因应用程序脚本将 <= 运算符 almost 视为 = 运算符。

函数:

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)。这将适用于 wNumscurrentWnum.

中的每个元素