#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’ работает, как и ожидалось. Большое спасибо!