【问题标题】:How to store info for multiple users如何为多个用户存储信息
【发布时间】:2021-02-26 15:10:28
【问题描述】:

我正在为朋友开发 DnD 不和谐机器人,我希望能够让玩家使用命令并输入他们的信息(例如角色的名字/姓氏、种族、职业等)

我尝试使用地图,但我对使用地图很陌生,不知道如何嵌套其他人和/或如何访问它。

我将如何完成这样的事情?

我研究过使用数组或列表,但不知道从哪里开始

所以我想可能是这样的 v 使用用户 ID 作为键,所以如果提到的用户或作者使用某个命令,它将检查一个是否已经制作,如果它正在做其他事情,如果没有生成什么这样他们就可以填写信息了

我也知道 map() 可以像这样嵌套,只是我真的不知道如何访问存储在键下方的信息,就像我希望有人使用像 !set character firstname 这样的命令并能够将他们的字符放在首位名字。

每次我尝试这样做时,我总是得到一个错误,说 key.firstname.get() is not a function

{ 
 key: member.id { 
   firstname: 'Bob', 
   lastname: 'Doofensmurf', 
   race: 'human', 
   class: 'Rogue'
   // Etc.
 },
 key: another.member.id { 
   firstname: 'Jack', 
   lastname: 'Nickleson', 
   race: 'Elf', 
   class: 'Wizard'
   // Etc.
 }
}

【问题讨论】:

    标签: javascript node.js npm discord.js


    【解决方案1】:

    您的语法错误。应该是这样的:

    let arrayname = [
        {
            key: member.id,
            firstname: 'Jack',
            lastname: 'Nickelsen',
            race: 'elf'
            // etc
        },
        {
            key: anothermember.id,
            firstname: 'Jack',
            lastname: 'beanstalk',
            race: 'elf'
            // etc
        }
    ];
    

    请注意,我将左括号和右括号更改为 [ 和 ],因为它现在是一个数组,而不是一个对象。并访问,

    alert(arrayname[0].firstname);
    

    它应该显示 Jack。

    【讨论】:

    • 好吧,我试试看!
    • 实际上我希望能够访问特定用户的角色信息,我可以这样做吗?
    • 您的问题必须更具体。我只能猜测你真正想做什么。但是可以使用它获取任何信息。例如:let characters = [{ name: "mike", race: "elf" }, { name: "legolas", race: "elf" }, { name: "john", race: "human" }, { name: "paulo", race: "human" }]; alert(characters.filter(char => char.race == "human")); 警报将为您提供列表中的所有人员。我建议您阅读有关 Javascript 对象和数组的教程。互联网上有成千上万的教程。
    猜你喜欢
    • 2014-10-01
    • 1970-01-01
    • 2012-05-26
    • 2018-10-20
    • 1970-01-01
    • 2020-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多