Properties Google应用程序脚本批量集属性

Properties Google应用程序脚本批量集属性,properties,google-apps-script,Properties,Google Apps Script,另一个气体问题。我阅读了关于和批量设置属性的文档,以及(再次)关于的文档。然而,我不熟悉Javascript,对GAS还是新手,因此我一直在运行API调用的速率限制 基本上,我想从电子表格中“获取”所有这些属性,将它们放入数组、对象或其他东西中,然后批量设置所有属性。我的键和值都是正确的,我只是不知道如何将它们临时存储在JS对象或数组中,或者存储在setProperties(Object)方法将接受的某些数据类型中 以下是当前代码(可怕的睡眠计时器是唯一工作的东西…): 函数集子序列属性(pro

另一个气体问题。我阅读了关于和批量设置属性的文档,以及(再次)关于的文档。然而,我不熟悉Javascript,对GAS还是新手,因此我一直在运行API调用的速率限制

基本上,我想从电子表格中“获取”所有这些属性,将它们放入数组、对象或其他东西中,然后批量设置所有属性。我的键和值都是正确的,我只是不知道如何将它们临时存储在JS对象或数组中,或者存储在
setProperties(Object)
方法将接受的某些数据类型中

以下是当前代码(可怕的
睡眠
计时器是唯一工作的东西…):

函数集子序列属性(propertyRange,sheet){
//根据新的范围值获取其他库属性。
//propertyRange是键/值对的2列1行范围
var tableRange=ScriptProperties.getProperty(propertyRange);
var dataRange=sheet.getRange(tableRange);
var data=dataRange.getValues();
//为批量设置创建“属性”对象,以防止过度使用API调用
//var属性=新数组(data.length);
//为每行设置一个新脚本属性
对于(变量i=0;i

如何将
propertyKey
propertyValue
添加到一个对象中,以一次性进行批量设置?伪想法在代码块中被注释掉。

既然你说你是Javascript新手,我想你也是Javascript新手。确实存在一个
ScriptProperties.setProperties()
方法,该方法将JSON对象作为参数

仅修改代码的setProperty()位,以下是您可以执行的操作

function setSubsequentProperties(propertyRange, sheet) {

  // Get the other Library Properties based on the new Range values.
  // propertyRange is the 2-column 1-row Range for the key/value pairs
  var tableRange = ScriptProperties.getProperty(propertyRange);
  var dataRange = sheet.getRange(tableRange);
  var data = dataRange.getValues();

  // Create a 'properties' Object for bulk-setting to prevent overusing API calls
  //var properties = new Array(data.length);

  // Set a new Script Property for each row
  var myObject  = {} ;
  for (var i = 0; i < data.length; ++i) {
    var row = data[i];
    var propertyKey = row[0];
    var propertyValue = row[1];

    // var myObject = allMyPropertiesInOneObject
    myObject[propertyKey] = propertyValue; 

  }
  ScriptProperties.setProperties(myObject);
}
函数集子序列属性(propertyRange,sheet){
//根据新的范围值获取其他库属性。
//propertyRange是键/值对的2列1行范围
var tableRange=ScriptProperties.getProperty(propertyRange);
var dataRange=sheet.getRange(tableRange);
var data=dataRange.getValues();
//为批量设置创建“属性”对象,以防止过度使用API调用
//var属性=新数组(data.length);
//为每行设置一个新脚本属性
var myObject={};
对于(变量i=0;i
既然你说你是Javascript新手,我想你也是Javascript新手。确实存在一个
ScriptProperties.setProperties()
方法,该方法将JSON对象作为参数

仅修改代码的setProperty()位,以下是您可以执行的操作

function setSubsequentProperties(propertyRange, sheet) {

  // Get the other Library Properties based on the new Range values.
  // propertyRange is the 2-column 1-row Range for the key/value pairs
  var tableRange = ScriptProperties.getProperty(propertyRange);
  var dataRange = sheet.getRange(tableRange);
  var data = dataRange.getValues();

  // Create a 'properties' Object for bulk-setting to prevent overusing API calls
  //var properties = new Array(data.length);

  // Set a new Script Property for each row
  var myObject  = {} ;
  for (var i = 0; i < data.length; ++i) {
    var row = data[i];
    var propertyKey = row[0];
    var propertyValue = row[1];

    // var myObject = allMyPropertiesInOneObject
    myObject[propertyKey] = propertyValue; 

  }
  ScriptProperties.setProperties(myObject);
}
函数集子序列属性(propertyRange,sheet){
//根据新的范围值获取其他库属性。
//propertyRange是键/值对的2列1行范围
var tableRange=ScriptProperties.getProperty(propertyRange);
var dataRange=sheet.getRange(tableRange);
var data=dataRange.getValues();
//为批量设置创建“属性”对象,以防止过度使用API调用
//var属性=新数组(data.length);
//为每行设置一个新脚本属性
var myObject={};
对于(变量i=0;i
为了更新这个答案,谷歌已经弃用了ScriptProperties,并用PropertiesService取代了它。您可以在Properties对象上使用setProperties()解决相同的问题,但您必须首先使用对PropertiesService的调用来选择所需的存储类型:

var myObject={};
对于(变量i=0;i设置属性(myObject)为了更新这个答案,Google已经弃用了ScriptProperties,并用PropertiesService替换了它。您可以在Properties对象上使用setProperties()解决相同的问题,但您必须首先使用对PropertiesService的调用来选择所需的存储类型:

var myObject={};
对于(变量i=0;i设置属性(myObject)