javascript - Google Apps 脚本 setValues() 不正确的高度错误

标签 javascript google-apps-script google-sheets

我已经看过其他一些与此类似的问题,但我正在以一种独特的方式获取我的数组,我无法弄清楚如何将其更改为二维数组。

  //Special function for adding arrays, just use sumArray on first array with second array in parenthesis
  //==========================================
  Array.prototype.sumArray = function (arr) {
    
    var sum = this.map(function (num, idx) {
      return num + arr[idx];
    });
    
    return sum;
  }
  var array1 = [1,2,3,4];
  var array2 = [5,6,7,8];
  var sum = array1.sumArray(array2);
  Logger.log("sum: " + sum);
  //==========================================

  var calc = ss.getRangeByName( "calc" );
  var target = ss.getRangeByName( "target" );
  var current = ss.getRangeByName( "current" );
  var left = ss.getRangeByName( "left" );
  
  var gainedEVs = calc.getValues();
  var goalEVs = target.getValues();
  var oldEVs = current.getValues();
  var leftEVs = left.getValues();
  
  //Make everything ints
  //==========================================
  for(var i = 0; i < oldEVs.length; i++) {
    Logger.log(oldEVs.length);
    oldEVs[i] = parseInt(oldEVs[i]);
  }
  for(var i = 0; i < gainedEVs.length; i++) {
    
    gainedEVs[i] = parseInt(gainedEVs[i]);
  }
  for(var i = 0; i < goalEVs.length; i++) {
    
    goalEVs[i] = parseInt(goalEVs[i]);
  }
  for(var i = 0; i < leftEVs.length; i++) {
    
    leftEVs[i] = parseInt(leftEVs[i]);
  }
  //==========================================
  
  var newEVs = [[oldEVs.sumArray(gainedEVs)]];
  var newLeft = [[goalEVs.subArray(newEVs)]];

  //Now I try to set values and I get the error
  current.setValues(newEVs);

我尝试将 setValues 更改为 setValues([newEVs]);但这也不管用。关于如何让我的 newEV 阵列达到正确高度的任何线索?它具有正确数量的值,但这些值存储在列中,而不是行中。 (在这种情况下,我所有的范围都是 6 行 1 列)

最佳答案

由于你的范围很小,你不必太担心性能,所以你可以使用循环将它们从行转换为列:

var column = [];
for (var i=0; i<newEVs.length; i++){
  column.push([newEVs[i]]);
}
current.setValues(column);

关于javascript - Google Apps 脚本 setValues() 不正确的高度错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38816717/

相关文章:

javascript - 如果 ColA 已填充或未填充,如何使用脚本向 ColB 添加和删除特定文本

javascript - 如何制作排序数组和计数数组按钮?

javascript - AngularJS $http 结果与 promise

javascript - 使用 javascript 清除文本字段

google-apps-script - Slack > Gsheet > VLookup > Slack

google-apps-script - 是否可以将问题和多项选择选项从 Google 表单导出到 Google 表格?

javascript - Google Sheets - 根据特定列将行移动到另一个工作表

web-scraping - 试图在谷歌表格中获取加密货币价格数据,而没有像我们 SNX 这样的常见硬币

javascript - 忽略具有可变宽度的父填充

google-apps-script - 超过最大执行时间(第 0 行)