You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

创建并填充二维数组遇问题:空白元素未被填充求助

问题分析与解决

为什么仍存在空白元素?

你创建的二维数组包含9个子数组(对应sheetRawLastRow-1=9),但填充循环里只对第一个子数组(tableautampon[0])赋值,其余8个子数组完全没被操作,自然保持空白状态。

另外,getValues()返回的是二维数组,sheetRawFifthColumn[i]本身是一个单元素数组(比如[Wed Mar 20 2024...]),直接赋值会让你的数组变成三维嵌套结构,这也不符合预期。

为什么跳过第一步无法运行?

如果不提前执行tableautampon[l] = new Array()初始化子数组,tableautampon[l]的初始值是undefined,你无法给undefined的索引(比如tableautampon[l][i])赋值,会直接抛出"Cannot set properties of undefined"的错误。

修正后的代码

需求1:每个子数组存一个日期

如果想把第五列的每个日期对应放到二维数组的子数组里,代码可以这么写:

var tableautampon = [];
var sheetRawFifthColumn = sheetRaw.getRange(2,5,sheetRawLastRow-1,1).getValues();

for (var i = 0; i < sheetRawFifthColumn.length; i++) { 
  // 直接创建子数组并赋值,无需提前初始化所有空数组
  tableautampon[i] = [sheetRawFifthColumn[i][0]];
}

需求2:将列数据转为二维数组的第一行

如果你的目标是把第五列转成二维数组的第一行,无需初始化9个空数组,直接处理即可:

var sheetRawFifthColumn = sheetRaw.getRange(2,5,sheetRawLastRow-1,1).getValues();
// 提取每个元素的日期值,组成第一行的数组
var tableautampon = [sheetRawFifthColumn.map(item => item[0])];

执行后结果会是:

[ [ Wed Mar 20 2024..., Wed Mar 20 2024..., Thu Mar 21 2024..., ... ] ]

内容的提问来源于stack exchange,提问作者Sébastien Chevin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 14:05:33