Logger.log показывает все значения вложенного массива, но на листе добавляется только первый элемент

#javascript #arrays #google-apps-script #foreach

#javascript #массивы #google-apps-script #foreach

Вопрос:

API, к которому я обращаюсь, имеет массив ( tickets ), который содержит вложенный массив строк ( tags ). Когда я выполняю цикл, чтобы добраться до значений вложенного массива, я могу увидеть полный список тегов (в красном поле на скриншоте ниже).

введите описание изображения здесь

Однако, когда я просматриваю лист, он возвращает только первый элемент массива, как вы можете видеть на скриншоте ниже.

введите описание изображения здесь

Я уверен, что это что-то глупое, но я не могу понять это. Мой код приведен ниже. Спасибо за любую помощь, которую вы можете предоставить.

 var example = []
 results.forEach(function(tickets){
  var temp = [];
   tickets.tags.forEach(function(tags){
      temp.push(tags);
   })
   example.push([tickets["resolution_time"],tickets["created_at"], tickets["priority"], tickets["state"],tickets["id"], tickets["closed_by"], temp])
 })

Logger.log(example   "is this working?");

var len = example.length;

//clear existing data
sheet.getRange(2,1,2000,8).clearContent();

//paste in the values
sheet.getRange(sheet.getLastRow()  1,1,len,7).setValues(example);
  

Ответ №1:

Я вижу, что вы пытаетесь поместить массив строк ( temp ) в одну ячейку листа. Вы вообще можете это сделать?

Заменить

   var temp = [];
   tickets.tags.forEach(function(tags){
      temp.push(tags);
   })
  

с

   var temp = tickets.tags.join(',')