【问题标题】:How do i iterate through a collection?我如何遍历一个集合?
【发布时间】:2019-12-04 00:54:43
【问题描述】:

我正在尝试列出具有特定角色的不和谐服务器的所有成员。 我可以将它们与其他人隔离开来,我可以console.log 将它们作为一个集合。 但是当涉及到遍历该集合以获取单个属性(例如其用户名)时,我尝试了所有方法,但我不知道如何像通过索引处理常规数组一样逐个访问它们。 我不想console.log他们,而是要访问他们各自的属性,比如members[9].user.username

我尝试了各种 for 循环。

let membersWithRole = roles.find(role => role.name === role_name).members;
for (var i in membersWithRole)
{
    console.log(i);
}

我希望能够遍历一个集合,不管它是什么(我也搜索过它,但找不到合适且简单的定义)

【问题讨论】:

  • 你试过console.log(membersWithRole[i]) 吗?
  • @Taki i 不是索引
  • 是的,我尝试使用常规索引 for 循环,就像使用数组一样,但这也不起作用
  • 这里我应该是一个对象,当前成员,但是不,我什么都不是,它甚至没有进入循环,或者我尝试过的任何类型的循环
  • 有错误吗?听起来roles.find(...) 没有找到角色并返回undefined。尝试读取 members 属性会抛出 "Cannot read property members of undefined." 另外,请参阅 here 以获取有关 Collections 的 Discord.js 文档。请注意,它扩展了 Map 原型。

标签: javascript discord discord.js


【解决方案1】:

好的,我发现我正在寻找的循环是“forEach”,如下所示:

let membersWithRole = roles.find(role => role.name === role_name).members;
membersWithRole.forEach(member => {
    //I can do what I want with member here.
});

而且效果很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-21
    • 2012-06-09
    • 2014-04-11
    • 1970-01-01
    • 2018-11-17
    • 1970-01-01
    相关资源
    最近更新 更多