javascript - Google Apps 脚本 - 如何在函数的循环中引用对象
问题描述
我正在尝试使用谷歌表格/驱动器创建一个小型发票组织系统。我有一张我称之为“任务”的工作表,我计划从中控制一切。我的一些专栏包括“客户”、“项目”、“要求”、“详细信息”、“分包商”......当我获得新任务/客户时,我会查找并附加与任务相关的信息(“项目”、“要求”)添加到其他工作表,或者,如果不存在,则创建文件夹、工作表,并将“任务”工作表中的相应必要信息附加到新工作表。一些工作表将发送给分包商,具体取决于他们的任务是否已更新或在原始“任务”表中是否分配了新任务。
在我发送给分包商的表格中,将有一些字段供他们填写(费率,等..),一旦填写,我会将这些信息发送到第三张表格以应用一些保证金,额外费用,然后发送信息回到原来的“任务”表,它将在其中填写适当的单元格。一旦填写了一行中的所有必要信息,就会为“客户”列中指定的客户准备并组织成一张发票……
无论如何,我一直在尝试学习 javascript 来实现所有这些。当我计划根据“任务”表的行和列中输入的值创建文件夹、工作表和附加信息时......我在 onEdit 函数中放置了一个 for 循环,该函数执行以下操作:
function onEdit(e) {
var ss = e.range.getSheet().getParent();
var sheet = e.range.getSheet();
var row = e.range.getRow();
var columns = [1, 2, 3, 4, 5, 6, 7, 8, 9];
//assign titles as 'keys' to array
var titles = []
//assign values of edited row to array
var values = []
//create an object to associate the title to the new edited values
var task = {}
for(var i in columns){
titles.push(sheet.getRange(1, columns[i]).getValue()); //push titles
values.push(sheet.getRange(row, columns[i]).getValue()); //push values of updated row
task[titles[i]] = values[i]; //add the values to their property names in task object
}
这行得通,我可以引用任务[“客户端”],但我想把这个循环放在一个函数中,以便我可以再次使用它。我想我可以不用它,但数组“列”仅代表我将在“第一轮”中输入的列 --- 当我发送信息时......我将在第 10-15 列输入新信息,然后 16-20,随着任务的进展.. 我想为这些列运行 for 循环,而不必创建单独的循环。为此,我在下面创建了 GetInfo 函数:
function GetInfo(row,column){
for(var i in column){
titles.push(sheet.getRange(1, column[i]).getValue()); //push titles
values.push(sheet.getRange(row, column[i]).getValue()); //push values of updated row
this.task[titles[i]] = values[i]; //add the values to their task
}
}
我想要完成的与此处概述的类似。但是,示例中没有提到“for(var..in..”),我认为我错过了一些东西。为了尝试将函数用于第一个列数组,我这样做了:
var list = new GetInfo(row,columns);
我想将任务引用如下
list.task["client"]
或者var.task["name"],但是上面的不行。当我敬酒 list.task["Client] 或尝试将其附加到另一个单元格时,什么都没有发生 - 它是空白的。我做错了什么?我该如何正确完成这个?我该怎么办?
任何帮助或指导将不胜感激。请。
(其他吐司正在工作,并且相应的单元格不是空白的,没有 for var 的功能)
解决方案
推荐阅读
- java - SAML getUnmarshaller(element) 返回 null
- php - 作曲家安装不起作用。连接被拒绝
- php - PHP:在接口中使用父类作为类型声明
- mysql - SQL查询如何显示给定开始时间和结束时间之间的变化
- c++ - std::array 派生类聚合初始化
- html - 锚标签正在破坏轮播滑块 - Bootstrap 4
- c# - ASP.NET Core 2.x - HttpClient api returns error 'Object reference not set to an instance of an object'
- python - 如何使用 miniconda 获得一个完全干净的 python 环境?
- java - 像whatsapp这样的tablayout动画
- select - 如何将选项值存储在动态的依赖选项中?