通过Snowflake数组Discord.js循环
我正在寻找一种方法从这个集合中获取数据。
数据如下所示:
'0000000' => GuildMember { guild: Guild { members: [Object], id: '000000', name: 'Zombie', _rawVoiceStates: [Object] }, user: User { id: '0000000', username: 'Orc', _roles: [ '0000' ], nickname: 'Orc', joinedTimestamp: 00000, lastMessageID: null }, '0000000' => GuildMember { guild: Guild { members: [Object], id: '000000', name: 'Zombie', _rawVoiceStates: [Object] }, user: User { id: '0000001', username: 'Orc1', _roles: [ '0000' ], nickname: 'Orc', joinedTimestamp: 00000, lastMessageID: null }, _array: null, _keyArray: null }
我目前的循环是:
var user; for(var u in test.members){ user = test.members[u]; console.log("["+u+"] "+user.username); }
它现在踢了一个TypeError: Cannot read property 'user' of null
我原本以为这个数据是一个数组,但它不是根据Discord.js文档,但我仍然不知道如何从集合中提取用户名数据。
任何帮助将是有益的。
现在我看着discord.js API,我想你得到的东西是这样的(假设testing是你的公会对象):
test.members.forEach(function(guildMember, guildMemberId) { console.log(guildMemberId, guildMember.user.username); })
如果这不起作用,请按以下方式进行:
var membersArray = test.members.array(); for(var guildMemberId in membersArray) { console.log(guildMemberId, membersArray[guildMemberId].user.username); }
TypeError:无法读取null的属性'user'
意思是你的user
variables是null,这意味着test.members[u]
是空的。 尝试先loggingtest.members
,看看它是否填充。
user.user.username
可能是错的。 因为它看起来应该只是user.username