debugging Spread运算符仅返回Google应用程序脚本中的第一个值

6tr1vspr  于 11个月前  发布在  Go
关注(0)|答案(3)|浏览(117)

我尝试使用Google Apps脚本在Google工作表中插入一些值,但是当我扩展前面定义的范围时,它只返回第一个值。
我期望Logger.log(...pasteAndFormatRange);Logger.log(pasteAndFromatRange.flat()Logger.log(pasteAndFormatRange[0], pasteAndFormatRange[1], pasteAndFormatRange[2], pasteAndFormatRange[3]);返回2.0, 1.0, 626.0, 9.0,但它只返回2.0
我期望Logger.log(pasteAndFormatRange);Logger.log([...pasteAndFormatRange]);返回[2.0, 1.0, 626.0, 9.0],它确实返回了。
我已经确保typeof数组实际上是一个object。我已经尝试用几种方法从这个数组创建一个新数组,但新数组的行为是相同的。
同样,一周前这个方法也很好用.
代码如下:

let pasteAndFormatRange;

  if (action === 'override') {
    pasteAndFormatRange = [2, 1, target.getLastRow()-1, target.getLastColumn()];
  }

  Logger.log(pasteAndFormatRange); // returns [2.0, 1.0, 626.0, 9.0]
  Logger.log([...pasteAndFormatRange]); // returns [2.0, 1.0, 626.0, 9.0]
  Logger.log(...pasteAndFormatRange); // returns 2.0
  Logger.log(pasteAndFormatRange[0], pasteAndFormatRange[1], pasteAndFormatRange[2], pasteAndFormatRange[3]); // returns 2.0

target.getRange(...pasteAndFormatRange).setValues(data.slice(1));

字符串

i2byvkas

i2byvkas1#

问题不在于传播运营商。
查看Logger.log的文档,它只接受一个参数,因此会默默地忽略其他参数。

acruukt9

acruukt92#

Logger不支持多个参数。请改用console.log

function tgi09(){
  console.log(1,2,3);//Logs 1 2 3
  Logger.log(1,2,3); //Logs 1.0
}

字符串

6kkfgxo0

6kkfgxo03#

然而,如果pasteurRange是和数组而不是范围,它就会工作:

function myfunk() {
  const pasteAndFormatRange = [
    [1, 2, 3],
    [4, 5, 6]
  ];
  Logger.log([...pasteAndFormatRange]);
}

7:22:52 AM  Notice  Execution started
7:22:52 AM  Info    [[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]
7:22:53 AM  Notice  Execution completed

字符串

相关问题