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

6tr1vspr  于 2023-11-22  发布在  Go
关注(0)|答案(3)|浏览(155)

我尝试使用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。我已经尝试用几种方法从这个数组创建一个新数组,但新数组的行为是相同的。
同样,一周前这个方法也很好用.
代码如下:

  1. let pasteAndFormatRange;
  2. if (action === 'override') {
  3. pasteAndFormatRange = [2, 1, target.getLastRow()-1, target.getLastColumn()];
  4. }
  5. Logger.log(pasteAndFormatRange); // returns [2.0, 1.0, 626.0, 9.0]
  6. Logger.log([...pasteAndFormatRange]); // returns [2.0, 1.0, 626.0, 9.0]
  7. Logger.log(...pasteAndFormatRange); // returns 2.0
  8. Logger.log(pasteAndFormatRange[0], pasteAndFormatRange[1], pasteAndFormatRange[2], pasteAndFormatRange[3]); // returns 2.0
  9. target.getRange(...pasteAndFormatRange).setValues(data.slice(1));

字符串

i2byvkas

i2byvkas1#

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

acruukt9

acruukt92#

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

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

字符串

6kkfgxo0

6kkfgxo03#

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

  1. function myfunk() {
  2. const pasteAndFormatRange = [
  3. [1, 2, 3],
  4. [4, 5, 6]
  5. ];
  6. Logger.log([...pasteAndFormatRange]);
  7. }
  8. 7:22:52AM Notice Execution started
  9. 7:22:52AM Info [[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]
  10. 7:22:53AM Notice Execution completed

字符串

相关问题