Arrays 如何在已从api调用映射的变量中组合数组

Arrays 如何在已从api调用映射的变量中组合数组,arrays,google-apps-script,Arrays,Google Apps Script,我正在尝试使用'sheet.getRange().setValues()'将Google应用程序脚本中的URLFetchApp API获取结果返回到Google工作表中。我可以使用“setValue()”版本从一个变量填充单个单元格,但在尝试从一个数组填充多个单元格时,我被卡住了 如果我的“log(arr)”变量如下所示, [19-10-12 15:17:45:538英国夏令时][99] [19-10-12 15:17:45:669英国夏令时][98.9] [19-10-12 15:17:45:

我正在尝试使用'sheet.getRange().setValues()'将Google应用程序脚本中的URLFetchApp API获取结果返回到Google工作表中。我可以使用“setValue()”版本从一个变量填充单个单元格,但在尝试从一个数组填充多个单元格时,我被卡住了

如果我的“log(arr)”变量如下所示,
[19-10-12 15:17:45:538英国夏令时][99]
[19-10-12 15:17:45:669英国夏令时][98.9]
[19-10-12 15:17:45:829英国夏令时][91]
[19-10-12 15:17:45:970英国夏令时][96.4]
[19-10-12 15:17:46:298英国夏令时][91.6]
[19-10-12 15:17:46:441英国夏令时][110.6]
[19-10-12 15:17:46:600英国夏令时][93.7]
[19-10-12 15:17:46:762英国夏令时][93.8]
[19-10-12 15:17:46:903英国夏令时][92.6]

我认为应该是这样的
[99,98.9,91,96.4,91.6110.6,93.7,93.8,92.6]

有很多关于使用concat()函数将变量合并到一个数组中的详细指南,但是我找不到任何关于如何处理映射变量的错误方法的信息

结果就是错误 TypeError:无法从undefined中读取属性“length”。 这一定是因为我的数组格式不正确

任何非常感激的帮助都会让你觉得自己是个合适的人

    var records = results.map(function (positions){

    var position = positions.Metrics.Position;

    var arr = [];

    arr.push(position);

sheet.getRange(6,3,arr.length,arr[0].length).setValues(arr);

    Logger.log(arr)


我看到的是,您迭代结果并写入每个记录的范围。假设你的位置是99

var position = positions.Metrics.Position; // === 99
var arr = []; //new empty array
arr.push(position;  // === [99], array with the length of 1.
然后转到第6行第3列,尝试构建一个范围,该范围跨越arr.length向下的行(记住,arr.length等于1)和arr[0]。右侧的列。但是,arr[0]等于99,并且99没有“length”属性(未定义!)

以下是可能解决您的问题的代码:

//returns a 2D array where every inner array entry correspons to a row of data
var records = results.map(function(positions){
       return [positions.Metrics.Position];
 });

 sheet.getRange(6,3, records.length, records[0].length).setValues(records);

现在还不清楚你在做什么,请提供更多的代码和一些你想要完成的工作的背景。谢谢你给我的帖子建议一个解决方案。如果答案解决了你的问题,你能把问题标记为已解决吗?
//returns a 2D array where every inner array entry correspons to a row of data
var records = results.map(function(positions){
       return [positions.Metrics.Position];
 });

 sheet.getRange(6,3, records.length, records[0].length).setValues(records);