array()函数返回一个对象 – Node.js Discord.js

我有一个问题与discord.js我试图让所有的玩家, let gplayers = games_array[0].role.members ,但因为它返回一个对象,就像{"123" => GuildMember {}, "456" => GuildMember {} ...}我只需要我尝试使用的"123""456"对象let gplayers = games_array[0].role.members.array()然后使用gplayers[i]但它没有工作。 所以我试着检查出了什么问题,我发现gplayers是一个对象,即使我使用了array()函数。

console.log('Members: ', JSON.stringify(games_array[0].role.members, null, 4)) logs Members: {}

我能做些什么来存储我的对象在数组中?

你可以循环键(在这种情况下“123”,“456”等),并将其值推入一个新的数组。

 let players = []; let members = games_array[0].role.members; for(key in members) { players.push(members[key]); } 

您可以使用for-in循环遍历返回对象的属性

 var gplayers = games_array[0].role.members; var key; for (key in gplayers) { // do whatever you want here // you can access the key's associated value as gplayers[key] } 

你可以在最近的引擎中使用Object.values

let players = Object.values(games_array[0].role.members)

我终于find了解决办法:我用这个方法

 collection.forEach(function(guildMember) { //guildMember is now a User object, and I can do everything using properties console.log(guildMember.user.username); }) 

解决scheme线程: 链接