You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Telegram中对任意层数嵌套数组生成逐行输出内容

解决方案

你可以直接通过数组的map+join方法实现任意长度数组的自动换行拼接,无需手动指定索引:


核心修改点

你原来手动拼接answer的写法仅支持固定长度的数组,替换为如下写法即可适配任意数量的嵌套数组场景:

const answer = ndata.map(item => item.join(',')).join('%0A');

逻辑说明:

  • 你已经通过masdata.flat()把三层嵌套的数组打平为一维数组,每个元素都是[字符串, 数字]格式的二元数组
  • map(item => item.join(','))会遍历所有二元数组,将每一项拼接为A1,10这类用逗号分隔的字符串
  • 外层join('%0A')会自动用换行符连接所有拼接好的字符串,不管数组有多少元素都能自动适配

优化建议

为了避免文本中存在特殊字符时请求报错,建议拼接URL时对文本参数做URL编码,修改sendMessage函数如下:

function sendMessage(chat_id, answer) {
  var url = telegramUrl + "/sendMessage?chat_id=" + chat_id + "&text=" + encodeURIComponent(answer);
  var response = UrlFetchApp.fetch(url);
}

完整修改后代码

const 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]]];
const ndata = masdata.flat();
const answer = ndata.map(item => item.join(',')).join('%0A');

function sendMessage(chat_id, answer) {
  var url = telegramUrl + "/sendMessage?chat_id=" + chat_id + "&text=" + encodeURIComponent(answer);
  var response = UrlFetchApp.fetch(url);
}

运行后输出的answer完全匹配预期结果。

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 08:15:02