首页 > 解决方案 > 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 我知道这可以在电子表格本身中完成,但这是我在脚本中执行的更大操作的一部分。

标签: javascriptarraysgoogle-apps-scriptsplit

解决方案


  • 计算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)


推荐阅读