我正在尝试使用电报bot API将按钮发送到我的电报bot。现在,对于创建按钮,我必须对字段中的值进行硬编码,但是可以说我想动态地通过数组创建内联键盘按钮,并将数组索引和数组值作为参数传递。我该怎么办?
 这是我到目前为止尝试过的。

  var menu =["Nightclub","Parks","Restaurants","Telecom","Internet"];
    var options = {
                    reply_markup: JSON.stringify({
                        inline_keyboard: [
                            [{ text: 'Some button text 1', callback_data: '1' }],
                            [{ text: 'Some button text 2', callback_data: '2' }],
                            [{ text: 'Some button text 3', callback_data: '3' }]
                        ]
                    })
                };


可以说我想在选项内部动态传递菜单数组中的数据。我该怎么办?

最佳答案

如果我对你的理解很好。

我们将在这里使用Array.map函数使用菜单数组创建一个数组。

  var menu = ["Nightclub", "Parks", "Restaurants", "Telecom", "Internet"];


  var options = {
       reply_markup: JSON.stringify({
            inline_keyboard: menu.map((x, xi) => ([{
                text: x,
                callback_data: String(xi + 1),
            }])),
      }),
  };




结果为:

    {
      reply_markup: JSON.stringify({
        inline_keyboard: [
          [{
            text: 'Nightclub',
            callback_data: '1'
          }],
          [{
            text: 'Parks',
            callback_data: '2'
          }],
          [{
            text: 'Restaurants',
            callback_data: '3'
          }],
          [{
            text: 'Telecom',
            callback_data: '4'
          }],
          [{
            text: 'Internet',
            callback_data: '5'
          }],
        ],
      }),
    }

关于javascript - 动态创建嵌入式键盘按钮电报API?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46070358/

10-12 14:19
查看更多