从范围列表中返回值,而无需随后进行展平

时间:2019-03-24 12:04:55

标签: javascript google-apps-script google-sheets

我有以下测试代码来限制2个范围内的值:

function myFunction() {
  var sh = SpreadsheetApp.getActiveSpreadsheet();
  var ss = sh.getActiveSheet();

  var rangeList = ss.getRangeList(["A1:A5","C4:C8"]).getRanges();
  var result = [];

  for (var range in rangeList){
    rangeList[range].getValues().map(function(e){result.push(e);});
  }

  result = result.map(function(e){return e[0];});\\flatten array

}

这很好用,但是我必须将result数组展平,因为map循环中的for函数将返回其数组中的每个值。有谁知道解决这个问题的方法吗?好像最后一行代码可能以某种方式变得多余。

谢谢

1 个答案:

答案 0 :(得分:1)

也许您可以在第一个循环中将项目推入0索引?

for (var range in rangeList){
  rangeList[range].getValues().forEach(function(e){ result.push(e[0]); });
}