gpt4 book ai didi

javascript - appendRow 返回 [Ljava.lang.Object;@ 而不是值

转载 作者:行者123 更新时间:2023-12-03 07:01:41 28 4
gpt4 key购买 nike

我想将表单提交复制到不同的工作表,以便可以编辑复制的数据而不影响原始提交。
我有以下代码:

function copy2(){
var responses = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("from");
var tracker = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("to");
var lastrow = responses.getLastRow();
var col = responses.getLastColumn();
var row = responses.getRange(lastrow, 1, 1, col).getValues();

tracker.appendRow([null,row[0]]);
使用 nullappendRow帮助您将信息移至下一列。但是,它不适用于 row[0]。大批。如果我删除 null它工作正常,但我希望将信息复制到与第一个不同的列上。

最佳答案

为什么是 Ljava.lang.Object?
因为您使用的是用 Java 编写的旧版 Rhino 运行时。因此,当意外发生时,您会看到 GAS 所基于的基础设施。现在, java.lang.object 是 Java 中的一个基类,其他对象(包括数组)从该基类派生而来。
由于 appendRow 方法签名的唯一参数接受一维值数组,您的 row[0] ,它包含一个数组(查看 getvalues 方法返回的内容),将其作为字符串标记添加到工作表中,表明这是运行时的对象。
在犀牛玩什么?
所有解决方案都取决于采取[ null ]作为您的基本数组并使用 concat 附加第一行的其余部分,如下所示:[ null ].concat(row[0]) .您也可以使用 push 用一个简单的for循环以获得更好的性能。
在 V80 中可以做什么?
正如提到的另一个答案,您最好的选择是spread syntax .你也可以做一个push(...row[0])以避免连接数组(因为您立即使用并丢弃由 [ null, ...row[0] ] 产生的副本)。

0 见 official docs关于如何迁移到 V8 以利用新的语言功能并提高速度。

关于javascript - appendRow 返回 [Ljava.lang.Object;@ 而不是值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64101102/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com