array() 函数 returns 一个对象

array() function returns an object

我有问题discord.js
我试图让所有扮演 let gplayers = games_array[0].role.members 角色的玩家,但因为它 returns 一个类似于 {"123" => GuildMember {}, "456" => GuildMember {} ...} 的对象,我只需要 "123""456" 个对象我尝试使用 let gplayers = games_array[0].role.members.array() 然后使用 gplayers[i]m 但它没有用。
我试图检查出了什么问题,我发现 gplayers 是一个对象,即使我使用了 array() 函数。

console.log('Members: ', JSON.stringify(games_array[0].role.members, null, 4)) 日志 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)

终于找到解决办法了:我用的就是这个方法

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

解决方案线程: