在与Google电子表格相关联的脚本项目中,我想编写一个从一系列单元格中提取数据的函数。有多个extraction methods对应不同的数据类型,即getValues
,getBackgrounds
等。
通常的调用方法是:
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('mysheet')
var A1 = 'A1:A2'
var values = sheet.getRange(A1).getValues()
然而,这发生在函数内部,我想让用户在函数调用中确定提取方法,如下所示:
var r = myfunction(arg1, arg2, extractionMethod = 'getValues')
所以我需要能够使用extractionMethod
(即它包含的字符串)来调用方法。
我试过了:
var values = sheet.getRange(A1).window[extractionMethod]
TypeError:无法读取属性" getValues"来自undefined。 (第31行,文件"有趣")
我也试过
var values = sheet.getRange(A1)[extractionMethod]
但是Logger.log(values)
只是给出了
[16-10-01 04:09:15:014 PDT] function getBackgrounds(){/ * * /}
我想要实现的目标:使用字符串'getValues'
(或其他有效方法名称)的函数调用,相当于调用,例如
var values = sheet.getRange(A1).getValues()
答案 0 :(得分:1)
使用括号可以访问对象的属性。 如果是你定义一个像这样的对象:
var obj = {
x: 1,
m: function() {
return this.x * 2;
}
};
您可以x
或obj.x
获得obj['x']
。
obj['m']
将为您提供方法m
,如果您想致电m
,则需要添加括号,obj.m()
或obj['m']()
。