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线程: 链接