【问题标题】:How do I join values from different object array from a json response? Node.js, Discord.js如何从 json 响应中连接来自不同对象数组的值? Node.js、Discord.js
【发布时间】:2021-08-02 19:12:39
【问题描述】:

所以这是来自 api 包装器 npm 包的 JSON 响应

    [
      { 
       name: Dank Memer
       id  : 10111
      },

      { 
        name: Poketwo
        id  : 10122
      },
     
      { 
       name: Mudae
       id  : 10445
     }
]

此数据存储在变量 resp 中,如下所示:

    discord.bots.get(function (err, resp) {
   if(err) { throw err } 
   else {
    console.log(resp)
    } 
})

我需要的是,我希望我的机器人发送一条消息,其中包含数组中的所有三个名称。 喜欢:

Dank Memer
Poketwo
Mudae

我曾尝试使用 .forEach(),但当我使用它时,机器人会显示所有名称,但在不同的消息中,每条消息都包含来自JSON。 我也试过 .join(),但没用。

就是这样,如何加入来自 JSON 响应的名称?

【问题讨论】:

  • 你在这里“加入”了哪些数据?

标签: node.js arrays json object discord.js


【解决方案1】:

对于基于 Lioness100 的回答的单行返回

const resp = [
  {
    name: 'Dank Memer',
    id: 10111,
  },
  {
    name: 'Poketwo',
    id: 10122,
  },
  {
    name: 'Mudae',
    id: 10445,
  },
];

const names = resp.map((item) => { return item.name })
console.log(names.toString());

【讨论】:

    【解决方案2】:

    最快的方法就是:

    resp.map(({ name }) => name).join('\n');
    

    这将通过其name 属性映射每个元素,然后通过新行连接所有三个。

    const resp = [
      {
        name: 'Dank Memer',
        id: 10111,
      },
      {
        name: 'Poketwo',
        id: 10122,
      },
      {
        name: 'Mudae',
        id: 10445,
      },
    ];
    
    const names = resp.map(({ name }) => name).join('\n');
    console.log(names);

    【讨论】:

      【解决方案3】:

      您是否尝试过这样做?

      discord.bots.get(function (err, resp) {
         if(err) { throw err } 
         else {
          let names = "";
          resp.forEach( user => { names += user.name + '\n\r' } )
          console.log(names)
          } 
      })
      

      【讨论】:

        猜你喜欢
        • 2018-10-18
        • 1970-01-01
        • 1970-01-01
        • 2015-02-14
        • 1970-01-01
        • 1970-01-01
        • 2019-11-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多