Google App 脚本返回多行数组

2023-12-02

Summary

我是 Google Apps 脚本的新手,但我花了相当多的时间进行研究,但一无所获。基本上我正在尝试复制 SQL 的交叉连接功能。我有 2 个表,一个包含 12 个月的日历表,一个包含 3 个客户的客户表。客户表由 Google 表单填充,并且今后将添加新客户。

对于我的报告,我需要按月收集客户数据。因此,我想将客户数据与日历交叉连接,以创建一个包含 36 行的数据集,其中每个客户有 12 行,每月一行。

根据我在 stackoverflow 上找到的其他代码,我已经接近了。我现在的问题是我的两个数据集最终显示在后续行上,这似乎是我处理数组的方式的问题。我还尝试使用 Push.apply 和 .concat 得到完全相同的结果。

任何帮助,将不胜感激!作业本可以找到here

另外,日历表并不是绝对必要的 - 我只是有 SQL 背景,所以我的第一反应是创建一个日历表并创建一个交叉联接。如果您能想出更好的方法来接受 Google 表单中的单行客户数据并输出 X 行并添加连续的月份和年份,请告诉我!

免责声明:我知道这种交叉连接方法在 SQL 数据库中会得到更好的处理,而 Google Sheets 并不是为此而设计的。这是一个临时解决方法,同时正在设计更好的长期解决方案。对于此解决方法,客户数据集可能少于 100 个客户,并且以每周大约 1 个客户的速度增长。


日历表


顾客表


自定义代码

function crossJoin(tabl1, tabl2, header) {
 var output = [];
  var days = tabl1;
  var customer = tabl2;
  if(header) {output.push([header[0][1], header[0][0]])};
  for(var i = 1, iLen = customer.length; i < iLen; i++) {
//     output.push(days[i]);
    for(var j = 1, jLen = days.length; j < jLen; j++) { 
      output.push(days[j],customer[i]);

    }
  }
  return output;  
}


电流输出


所需输出


您可以使用数组方法,例如concat达到同样的结果。

代码片段:

function sqlCrossJoin(arr1, arr2) {
  arr1 = arr1 || [['jan', 1], ['feb', 2]];
  arr2 = arr2 || [
    ['Jane Doe', 1983, 'PortLand', 'Oregon'],
    ['John Smith', 1984, 'San Francisco', 'California'],
  ];
  var output = [];
  arr1.forEach(function(month) {
    arr2.forEach(function(customer) {
      output.push(month.concat(customer));
    });
  });
  return output;
/* Expected Output:
[ [ 'jan', 1, 'Jane Doe', 1983, 'PortLand', 'Oregon' ],
  [ 'jan', 1, 'John Smith', 1984, 'San Francisco', 'California' ],
  [ 'feb', 2, 'Jane Doe', 1983, 'PortLand', 'Oregon' ],
  [ 'feb', 2, 'John Smith', 1984, 'San Francisco', 'California' ] ]*/
}

参考:

  • 数组#concat
  • 数组#forEach
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google App 脚本返回多行数组 的相关文章

随机推荐

  • Swift 中闭包有什么特殊用途吗?有什么好处?

    我学习 Swift 一段时间了 也阅读了 Swift 语言指南 https developer apple com library content documentation Swift Conceptual Swift Programmi
  • 在 JavaScript 中对数组中存储的数字求和

    我想对 JavaScript 对象中存储的数字列表求和 使用以下代码创建和更新对象 var myscore input name Points1 val scorelist JSON parse localStorage getItem p
  • 传入 Curl 的 URL 变量

    我是 cURL 新手 我的作业需要它 我为此使用 C 我有这条特殊的线路 效果很好 curl easy setopt curl CURLOPT URL http www google com 但是当我将 URL 修改为变量时 我的问题出现了
  • 为什么我的广播接收器不工作?

    我正在学习BroadCastReceiver 我试图用下面的代码实现的是 我想看到一个Toast当我切换到飞行模式时 应用程序是否打开 我没有做什么 做错了什么 请帮忙 谢谢 ConnectivityChangedReceiver java
  • 代码生成有哪些技术?

    我正在生成 C 代码 看起来它会变得非常混乱 即使是我的简单生成类也已经有大量的特殊情况 这是现在的代码 http github com alex alex s language tree local 2Fcpp Generation al
  • 过滤器聚合内的bucket_script抛出错误

    我正在尝试过滤过滤器聚合块中的空存储桶 并且我从elasticsearch 中收到错误 如果没有这个 响应会很大 因为我正在查询大量指标和嵌套聚合 为了简单起见 这是更大查询的一部分 GET index type search ignore
  • 如何更改 google 地图 api v2 的自定义信息窗口形状

    现在我使用此代码显示默认的矩形形状 this infoWindow ViewGroup getLayoutInflater inflate R layout newcustomdialog null this infoImage Image
  • 即使安装了捆绑包也无法获取本地颁发者证书

    我知道这里已经有人问过类似的问题 但我认为我的问题是不同的 我正在尝试向适当的 SSL 网站发出curl 请求 它不是自签名的 我可以轻松设置选项 甚至可以将 CA 证书包导入到正确的位置 我希望一切都好 但我仍然得到 SSL certif
  • JavaScript 将字符串中的所有 / 替换为 \?

    我有一个 javascript 文件 它使用 cscript 通过 Windows 作业运行 但是 我似乎无法修复这个问题以使其正常工作 在文件内部 它基本上采用 URL 并将其转换为 UNC 路径 ex http mysite com d
  • 从 C# 中的 csv 文件读取特定列

    我有一个简单的 3 列 csv 文件 我只需要从第一列中提取信息 我正在考虑正则表达式 但我希望有一种更简单更有效的方法 任何帮助都感激不尽 Thanks 尝试使用这个快速 CSV 阅读器
  • 如果在文本文件列表中找不到文件,批处理文件是否可以删除文件?

    尝试编写一个批处理文件 该文件将循环遍历目录中的所有文件 如果在文本文件中找不到文件的第一部分 则删除 在图像目录中 文件的命名如下 1 a jpg 1 b jpg 1 c jpg 2 a jpg 3 a jpg 3 b jpg 在文件中的
  • 链接文本框控件的必填字段和正则表达式验证器时出现问题

    我正在尝试使用 ASP net 实现表单验证 并且我已尝试了建议的所有解决方案here但最好的一个是aspsnippets com so far 我的代码如下
  • SELECT DISTINCT 不工作 Android SQLite

    注意问题已更新为我迄今为止所解决的问题 我正在编写一个应用程序 其位置记录如下 id primary state region area latitude longitude 我可以获取屏幕上的所有数据 但我只想列出州 并且仅列出州而不是任
  • 无法使用 fwrite 将 int 写入文件

    我正在尝试格式化我的键盘日志输出 以便它显示时间 t time 0 now localtime t if now gt tm min prevM now gt tm hour prevH prevM now gt tm min prevH
  • 基于用户选项的 PHP 动态 SQL SELECT 语句

    首先 我想提一下 我一直在疯狂地尝试和搜索以找到解决方案 但到目前为止还没有运气 我的问题如下 我有一个包含数十行的 MySQL 数据库 我创建了一个 jQuery 网格来显示数据 该页面已经可以使用了 根据要求 我正在整理一个页面 人们可
  • IIS 7.5 URL重写规则基于用户代理处理请求

    我编写了一条基于用户代理重定向请求的规则 该规则设置为将默认请求 非移动 重定向到Domain1以及从移动设备到移动域的请求 Domain2 即使在应用移动重定向后 来自移动设备的所有请求都会被带到Domain1 请参阅下面的重定向规则 谁
  • 扩展基础移动 Azure 示例(.net 后端)

    因此 我创建了一个天蓝色移动服务 下载了一个项目并运行它 第一次启动后 我在数据库中看到一些新表 TodoItems 有 2 项 和 MigrationHistory 到目前为止 一切都很好 现在 我想添加一张额外的桌子 我正在制作新模型M
  • XSLT 1.0 比较日期

    我想将当前日期与开始日期和结束日期进行比较 XML is
  • ggplot2:组合绘图时修复轴高度/宽度[重复]

    这个问题在这里已经有答案了 library ggplot2 library gridExtra df1 lt data frame x c A1 A2 A3 A4 something c 10 18 24 32 df2 lt data fr
  • Google App 脚本返回多行数组

    Summary 我是 Google Apps 脚本的新手 但我花了相当多的时间进行研究 但一无所获 基本上我正在尝试复制 SQL 的交叉连接功能 我有 2 个表 一个包含 12 个月的日历表 一个包含 3 个客户的客户表 客户表由 Goog