javascript - Google Apps 脚本:如何在二维数组上运行拆分功能并保持列号相同
问题描述
我在 Google Apps 脚本中的数组列上运行 split 函数,这又会创建多个列。列数根据触发分隔符的次数而有所不同,这会有所不同。因此,例如,某些行将以 6 列结束,而其他行将以 4 列结束。
我希望输出数组具有偶数列,因此应该扩展那些列较少的行,而多余的列中没有任何内容。
如何将其设置为等式?我正在使用的当前方程如下。
var splitarray = originalarray.map(function (row){ return row[0].split(" ") });
记录这个变量可能会让我得到这样的结果:
[[1,2,3],
[1,2,3,4]]
相反,我希望输出为(在此示例中):
[[1,2,3,],
[1,2,3,4]]
这样所有数组都具有相同的列数。
PS 我知道这可以在电子表格本身中完成,但这是我在脚本中执行的更大操作的一部分。
解决方案
- 计算map中行的最大大小
- 使用计算的最大大小修复
length
每行的
const originalarray = [["1,2,3"],["1,2,3,4"]];
let maxSplit = 0;
const splitarray = originalarray.map(function (row){
const s = row[0].split(",");
maxSplit = Math.max(maxSplit, s.length);
return s;
});
splitarray.forEach(row=>row.length=maxSplit);
console.info(splitarray)
- 在
setValues(array2D)
,undefined
将被解析为null
,因此单元格将为空
推荐阅读
- powershell - 从文件中删除新行
- click - 我是否正确使用鼠标功能?
- c# - MVC - 从 sqlite db 显示图像
- android - React-Native:在更新后读取保存在 Firebase 上的时间戳
- laravel - 如何在自动列生成时制作垂直列标题?
- javascript - 如何使用for循环从选择选项框中获取值[选择选项框是动态创建的]
- maven - 包含依赖的 Maven 模块时,AWS SAM 构建失败的 Lambda Java8
- android - 如何从 android 的 android webview 下载 Tik Tok 视频?
- c# - 基于 Windows 10 构建的 C# Winforms App 在 Windows 7 上抱怨 dll
- javascript - 如何在 html 和 css 中的聊天机器人响应中进行动态间距