Как генерировать построчный вывод для произвольного количества вложенных массивов в Telegram?

#google-apps-script #telegram

Вопрос:

Массив masdata формируется из произвольного числа массивов, в данном случае 5. Применяется «% 0A» для трех элементов массива, он работает. Как это сделать для произвольного количества массивов?

 masdata=[[["A1",10],["A2",20],["A3",30]], [["B1",50],["B2",60],["B3",70]], [["C1",100],["C2",150],["C3",200]], [["D1",25],["D2",152],["D3",457]], [["E1",18],["E2",42],["E3",55]]];  var ndata=masdata.flat();   answer =ndata[0] '
' ndata[1] '
' ndata[2];   function sendMessage(chat_id, answer) { var url = telegramUrl   "/sendMessage?chat_id="   chat_id  "amp;text=" answer; var response = UrlFetchApp.fetch(url);  }  

мой ожидаемый результат для данного массива

 A1,10 A2,20 A3,30 B1,50 B2,60 B3,70 C1,100 C2,150 C3,200 D1,25 D2,152 D3,457 E1,18 E2,42 E3,55  

Ответ №1:

 let result = '';  let arr = [[["A1", 10], ["A2", 20], ["A3", 30]], [["B1", 50], ["B2", 60], ["B3", 70]], [["C1", 100], ["C2", 150], ["C3", 200]], [["D1", 25], ["D2", 152], ["D3", 457]], [["E1", 18], ["E2", 42], ["E3", 55]]];  arr.forEach(A =gt; {  A.forEach(r =gt; {  result  = r.join(',')   'n';  });  });  console.log(result) 

Я никогда не играл с телеграммами, но, возможно, это сработает:

 function sendMessage(chat_id, answer) {  let telegramUrl = "https://example.com";  var url = telegramUrl   "/sendMessage?chat_id="   chat_id   "amp;text="   answer;  Logger.log(url);  var response = UrlFetchApp.fetch(url); }  

Сначала вызовите функцию ниже:

 function prepareDataAndSend() {  const arr = [[["A1", 10], ["A2", 20], ["A3", 30]], [["B1", 50], ["B2", 60], ["B3", 70]], [["C1", 100], ["C2", 150], ["C3", 200]], [["D1", 25], ["D2", 152], ["D3", 457]], [["E1", 18], ["E2", 42], ["E3", 55]]];  let result = '';  arr.forEach(A =gt; {  A.forEach(r =gt; {  result  = r.join(',')   '
';  });  });  sendMessage(10,result); }  

Комментарии:

1. пожалуйста, скажите мне, я заменяю результат вместо ответа в своей функции. это не то, как он отправляется. Как правильно встраивать?

2. Каким вы хотите видеть конечный результат телеграммы?

3. В вашем примере вы просто получаете первую строку, и у вас есть возврат каретки между каждой строкой, и это то, что я сделал.

4. Ваша функция работает абсолютно правильно, и результат в Telegram должен быть именно таким! Я заменил ответ = ndata [0] ‘% 0A’ ndata [1] ‘% 0A’ ndata [2] на ответ = результат, но он не отправляется.

5. Вариант с результатом = r.join (‘,’) ‘% 0A’ работает, как и ожидалось. Большое спасибо!