如何从 json 响应中连接来自不同对象数组的值? Node.js、Discord.js

Posted

技术标签:

【中文标题】如何从 json 响应中连接来自不同对象数组的值? Node.js、Discord.js【英文标题】:How do I join values from different object array from a json response? 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 响应的名称?

【问题讨论】:

你在这里“加入”了哪些数据? 【参考方案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)
     
)

【讨论】:

以上是关于如何从 json 响应中连接来自不同对象数组的值? Node.js、Discord.js的主要内容,如果未能解决你的问题,请参考以下文章

从 JSON 响应中解析两个不同对象的数组

如何使用 Codable 解码具有更改键的 json 响应?

从json对象数组中提取元素

如何从来自api响应的json字符串构造对象列表?

如何解析来自 URL 的 JSONS 数组的对象?

无法从打字稿中的 json 对象获取数组响应