Discord.js 集合;如何从集合中的数组中导航和抓取/计数对象
Posted
技术标签:
【中文标题】Discord.js 集合;如何从集合中的数组中导航和抓取/计数对象【英文标题】:Discord.js collection; how to navigate and grab/count objects from an array in a collection 【发布时间】:2020-08-24 03:05:09 【问题描述】:我有一个 discord.js Collection
,如下所示:
Collection(1) [Map]
'403547647215927306' =>
dispatcher: StreamDispatcher
_writableState: [WritableState],
writable: true,
_events: [Object: null prototype],
_eventsCount: 5,
_maxListeners: undefined,
player: [AudioPlayer],
streamOptions: [Object],
streams: [Object],
_nonce: 2369,
_nonceBuffer: <Buffer 00 00 09 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00>,
pausedSince: null,
_writeCallback: [Function (anonymous)],
broadcast: undefined,
_pausedTime: 0,
_silentPausedTime: 0,
count: 2369,
startTime: 1588923698004,
[Symbol(kCapture)]: false
,
queue: [ [Object], [Object], [Object] ],
connection: null,
position: 0
我想分离并计算调度程序的数量和队列中的对象数量。我已经能够使用
获取#dispatcher(s)var playlistCount = client.playlists.filter(q => q.dispatcher).size // returns 1 for code, 2 for image
但使用类似的方法
var playlistList = client.playlists.filter(q => q.queue).size // returns 1 for code, 2 for image
这应该是队列中的3
歌曲,而不是活动队列中的1
(或图片中的2
)。谁能建议如何过滤队列对象以返回大小/长度/计数?
queue
数组(如果相关)
【问题讨论】:
【参考方案1】:您可以使用find()
找到queue
并获取它的length
var playlistList = client.playlists.find(playlist => playlist.queue).length
【讨论】:
感谢您的回复!尝试这个我仍然得到 [object object] 返回 Image 1(上半部分):puu.sh/FI85v.png Image 2(下半部分):puu.sh/FI89k.png 真的认为编辑会起作用(我已经在原版之后尝试过)但它仍然返回未定义。以上是关于Discord.js 集合;如何从集合中的数组中导航和抓取/计数对象的主要内容,如果未能解决你的问题,请参考以下文章
从函数中导出数据 [mysql, node.js, discord.js]
如何在 discord.js 中获取消息中某个表情符号反应的计数