我有一个函数,它接受两个参数并执行操作。然后我有一个我坚持的功能。
第二个函数应将参数从 range
传递到 item1()
函数。
我在 item1
处收到错误,因为它缺少第二个参数。当我尝试记录传递的参数时,奇怪的事情发生了,因为:
range = [[GWPA4205022, 1550.0], [CWPA8005121, 1000.0], [, ]]
Logger.log(range[1][0],range[1][1]);
日志:CWPA8005121
console.log(range[1][0],range[1][1]);
日志:CWPA8005121 1000
这两者有什么区别?以及如何修复它?在循环内或循环外进行记录会产生相同的结果。
我的函数如下所示:
function callItem(){
const sheetName = "SHEET2";
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName(sheetName);
const range = sheet.getRange(4, 2, sheet.getLastRow(),2).getValues();
Logger.log(range);
Logger.log(range[1][0],range[1][1]);
console.log(range[1][0],range[1][1]);
for(var i = 0; i < range.length; i++){
if(range[i][0] !== ""){
item1(range[i][0],range[i][1]);
}
}
}
最佳答案
Logger.log
设计时采用一个参数
恐怕这就是 Google 编写该函数的方式。
https://developers.google.com/apps-script/reference/base/logger
选项
连接字符串 - 就像 Cooper 在其他答案中所示的那样
继续使用
console.log
使用format string
Logger.log("%s %s", range[1][0], range[1][1])
。或者Logger.log(`${range[1][0]} ${range[1][1]}`)
如果您不想使用
console.log
,您甚至可以编写自己的函数作为Logger
的包装器
function myLog(...args) {
Logger.log(args.join(", ")) // This just joins all arguments into a string separated by commas
}
let h = "hello"
let w = "world"
myLog(h, w) // "hello, world"
关于javascript - 为什么 Logger.log 看不到第二个参数而 console.log 却看到?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66665631/