谷歌应用程序脚本 - 数据不打印对应的键

时间:2016-08-07 07:33:15

标签: javascript google-apps-script

在我的API中,我有一些东西,比如假设公司的名称,并且在从api取出之后以分类的形式打印它们但是它们的有用网址显然与公司名称相对应 即,我已经对对象中的键进行了排序并按升序打印,但这些键的值不会与这些键相对应打印

URL的打印顺序与API中的相同,但是按键,我已将它们排序以按加号顺序打印   我无法从对象

打印与其键相关的值

功能在这里:

function fetchFromApi() {
  var url = '<My API from where am fetching the data>';
  var urlResponse = UrlFetchApp.fetch(url);
  var urlResult = JSON.parse(urlResponse);
  var key = Object.keys(urlResult);
  var tempArr = [];
  for (var x in urlResult) {
  var value = urlResult[x];
  value = value.replace(/\\/g, '');
  tempArr.push([value])
  }
  inputSheet.getRange(2,6,tempArr.length,1).setValues(tempArr);
  printData();
}

function printData() {
  keys.sort();
  key = [];
  for (var i=0; i<keys.length; i++) {
  key[i] = [];
  key[i][0] = keys[i];
  }
  var range = inputSheet.getRange(2, 1, key.length, 1);
  range.setValues(key);
  }

1 个答案:

答案 0 :(得分:0)

您可以尝试将关键字和值写入工作表,然后使用range.sort(col)进行排序。

在fetchFromApi()的for循环中,在tempArr.push([value])之后执行key.push([x])。在循环结束时,将key写入第1列,将tempArr写入inputSheet的第6列。然后,你可以做

var range = inputSheet.getRange(2, 1, key.length, 6);
range.sort(1);

根据第1列中键的值,按升序对第1列和第6列之间的所有内容进行排序。请参阅下面的range.sort(sortSpecObj)参考。

https://developers.google.com/apps-script/reference/spreadsheet/range#sortsortspecobj