You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在discord.js中正确访问[[Entries]]属性

discord.js 访问[[Entries]]属性正确实现方式

message.guild.members.cache 返回的是discord.js自定义的Collection类型,本质是JavaScript Map的扩展类,Map的内部[[Entries]]属性不支持通过数组下标[0]直接访问,这是之前写法返回undefined的核心原因。

下面分常用场景给出对应实现:

  • 场景1:获取全量键值对数组
    调用entries()方法转普通数组即可通过下标访问:
    // 得到[[key1, value1], [key2, value2], ...]格式的全量条目数组
    const allEntries = Array.from(message.guild.members.cache.entries());
    // 按下标取对应条目
    const firstEntry = allEntries[0];
    const firstEntryKey = firstEntry[0]; // 对应服务器成员ID
    const firstEntryValue = firstEntry[1]; // 对应GuildMember实例对象
    
  • 场景2:直接获取指定位置条目
    无需转全量数组,可直接使用Collection内置的便捷方法:
    // 取第一个成员对象
    const firstMember = message.guild.members.cache.first();
    // 取第一个条目的键
    const firstMemberId = message.guild.members.cache.firstKey();
    // 取第N个条目,例:取第3个成员对象,下标从0开始
    const thirdMember = message.guild.members.cache.at(2);
    
  • 场景3:遍历所有条目
    直接使用Map/Collection自带的遍历方法即可:
    // forEach遍历
    message.guild.members.cache.forEach((member, memberId) => {
      console.log(memberId, member.user.tag);
    });
    
    // for...of遍历
    for (const [memberId, member] of message.guild.members.cache) {
      console.log(memberId, member.user.tag);
    }
    

内容的提问来源于stack exchange,提问作者Zarcross

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 11:15:03