簡體   English   中英

為什么 Logger.log 看不到第二個參數而 console.log 有?

[英]Why Logger.log does not see second argument and console.log does?

我有一個 function 需要兩個 arguments 並做事。 然后我有一個我堅持的 function。 第二個 function 應該將 arguments 從range傳遞到item1()函數。 我在item1處收到錯誤,因為它錯過了第二個參數。 當我試圖通過 arguments 登錄時發生了奇怪的事情,因為:

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 看起來像這樣:

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(range[1][0] + ',' + range[1][1]);

const range = sheet.getRange(4, 2, sheet.getLastRow()-3,2).getValues();

Logger.log設計為采用一個參數

恐怕這正是谷歌編寫 function 的方式。

https://developers.google.com/apps-script/reference/base/logger

選項

  • 連接字符串 - 就像庫珀在另一個答案中顯示的那樣

  • 繼續使用console.log

  • 使用格式字符串Logger.log("%s %s", range[1][0], range[1][1]) Logger.log(`${range[1][0]} ${range[1][1]}`)

  • 如果您不想使用console.log ,您甚至可以編寫自己的 function 作為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"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM