为何temp为水平一维数组temp2为垂直?如何转置temp2为水平?
关于数组维度与转置的问题解答
首先要纠正一个误解:你代码里的temp和temp2本质上都是完全一样的水平一维数组,结构都是[元素1, 元素2, ..., 元素N]。你觉得它们一个是水平、一个是垂直,大概率是后续把数组写入Google Sheets表格时用了不同的方式导致的——因为Google Sheets的setValues()方法要求传入二维数组:
- 如果直接把一维数组传给
setValues(),会被默认解析成垂直列(每行放一个元素); - 如果把一维数组再套一层数组(比如写成
[temp]或[temp2]),就会被解析成水平行(一行放所有元素)。
如何把垂直结构的数组转成水平一维数组
如果你的temp2确实是垂直结构的二维数组(比如[[date],[area],[lotcode],...]这种每个元素都是单独数组的形式),可以用以下几种方法转成水平一维数组:
- 用
flat()方法直接扁平化(最简单):const horizontalTemp2 = temp2.flat(); - 手动遍历提取:
const horizontalTemp2 = []; for (let item of temp2) { horizontalTemp2.push(item[0]); } - 用
map()方法提取:const horizontalTemp2 = temp2.map(item => item[0]);
额外提示
如果是为了直接生成适合水平写入表格的数组,不需要转置,直接把temp2包在一个数组里即可,比如[temp2],这样用setValues()写入时就会变成一行多元素的水平结构。
内容的提问来源于stack exchange,提问作者Dorcas Domingo
相关产品推荐
相关产品推荐

