Мы пишем функцию для анализа обозначений номеров недель из столбца электронной таблицы Google в формате W # -W # (например, W1-10, W3-13 и т. Д.). По какой-то причине скрипт приложения обрабатывает < = оператор почти , как если бы это был оператор =.
Функция:
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] в условный оператор со статическим числом, и он ведет себя правильно. Есть идеи, что здесь происходит?