gpt4 book ai didi

javascript - 有没有办法在 Apps 脚本中使用 JavaScript 为对象创建方法字典?

转载 作者:行者123 更新时间:2023-11-28 00:38:45 29 4
gpt4 key购买 nike

我正在尝试为 Google 表格制作一个脚本,该脚本使用电子表格来创建表单。我将工作表的列中的值(加载到对象“dataObject”中)传递到对象数组中,如图所示。

  for (var i = 0; i < dataObject.length; i++)
{
dataObjectArray[i] = {
question: dataObject[i][3],
type: dataObject[i][4],
help: dataObject[i][5],
choices: dataObject[i][6],
options: dataObject[i][7],
validation: dataObject[i][8]
}
}

我的目标是使用每个对象的“问题”属性在我的 Google 表单中创建一个新项目。我遇到的问题是,根据问题类型,需要使用完全不同的方法来制作表单。

我尝试的第一件事是制作一个函数字典,如下所示:

 var form = FormApp.create('Foo'); 
var formDictionary = {
"Text": function(){form.addTextItem();},
"Paragraph Text": function(){form.addParagraphTextItem();},
"Multiple Choice": function(){form.addMultipleChoiceItem();},
"Checkboxes" : function() {form.addCheckboxItem();},
"Choose from a list": function(){form.addListItem();},
"Scale": function(){form.addScaleItem();},
"Grid": function(){form.addGridItem();},
"Date": function(){form.addDateItem();},
"Time": function(){form.addDateTimeItem();}
};

然后我会像这样调用表单创建函数:

   for (var i = 1; i < dataObjectArray.length; i++){
formDictionary[dataObjectArray[i].question]();
}

目前,我收到错误:类型错误:无法在对象 [object Object] 中找到未定义的函数。 (第 113 行,文件“代码”)

我知道我所尝试的可能存在多个问题(我自己也发现了其中一些),但我找不到更好的解决方案。

如果可能的话,我想避免使用 switch 语句,但如果它们是我唯一的选择,我会使用它们。

最佳答案

使用 JavaScript 原型(prototype)。

function MyFunction(){
return
}

MyFunction.prototype = {
test1:(function(){return "Hello"}),
test2:(function(){return "World"}),
}
var foo = new MyFunction();
Logger.log(foo.test1() +" "+ foo.test2())

关于javascript - 有没有办法在 Apps 脚本中使用 JavaScript 为对象创建方法字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28178089/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com