我们正在编写一个函数,以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]的行。具有静态数字的条件语句,并且其行为正确。有什么想法吗?
答案 0 :(得分:3)
您似乎在字符串上使用了private fun userRegistration(userRegistrationEntity: UserRegistrationEntity) {
addAsyncTask(appDatabase!!).execute(userRegistrationEntity)
}
private class addAsyncTask constructor(private val appDatabase: AppDatabase) : AsyncTask<UserRegistrationEntity, Void, Long>() {
override fun doInBackground(vararg params: UserRegistrationEntity): Long? {
// val a = appDatabase.userRegistrationDao().addUser(params[0]);
val newReturnId = appDatabase.userRegistrationDao().insertUser(params[0]);
return newReturnId
}
override fun onPostExecute(result: Long?) {
super.onPostExecute(result)
Log.d("value", result.toString())
}
}
。我希望可以按字典顺序对它们进行比较-例如,“ 13”小于“ 4”。
我建议您在进行任何比较之前将所有值转换为数字(例如,用<=
)。这将适用于parseInt
和wNums
中的每个元素。