javascript - 获取用户 ID 并将其保存到各个行会

标签 javascript node.js discord.js

基本上我想要做的是读取一个json文件并首先从中获取公会的ID,然后在该公会中搜索用户的ID。

假设这是 json 文件的示例:

{Guilds ID}:
    {Users ID}:
        Value: "Yes"
        Value2: "No"
    {Users ID}:
        Value: "Yes"
        Value2: "No"
{Guilds ID}:
    {Users ID}:
        Value: "Yes"
        Value2: "No"
    {Users ID}:
        Value: "Yes"
        Value2: "No"

我尝试使用:

Variable[message.guild.id] = {
    User: "User ID"
    }

但这并不会真正起作用,因为我无法像这样仅获取特定用户 ID 的变量。我可能把事情弄复杂了,但有人可以帮忙吗?我也想保存文件。谢谢。

最佳答案

以下怎么样:

var data = {
  "guild1": {
    "userId1": {
      "Value": "Yes",
      "Value2": "No"
    },
    "userId2": {
      "Value": "Yes",
      "Value2": "No"
    }
  },
  "guild2": {
    "userId3": {
      "Value": "Yes",
      "Value2": "No"
    }
  }
}

if (data["guild1"].hasOwnProperty("userId2")) {
  console.log("Value for userId2 in guild1: " + data["guild1"]["userId2"].Value);
}

if (!data["guild1"].hasOwnProperty("userId5")) {
  data["guild1"]["userId5"] = {
    "Value": "Yes",
    "Value2": "No"
  }
}
console.log("Added new user userId5 to guild1")

如果您的 JSON 数据结构由嵌套对象组成,其中行会对象包含用户对象,您可以使用 hasOwnProperty() 检查用户是否属于行会。方法如上例所示。请注意,您不得使用data["guild1"]["userId<x>"]相反,因为这会添加属性 "userId<x>": undefined如果给定的公会中不存在!另请参阅jsFiddle .

编辑:正如您还询问如何将用户添加到公会一样,我扩展了我的示例。关于读取和写入 JSON 请看这里:reading and writing json file using javascript

关于javascript - 获取用户 ID 并将其保存到各个行会,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55211471/

相关文章:

javascript - 检查字符串中是否有较小/较大的符号

javascript - Rails jQuery 被调用两次

javascript - Mongoose 文档的条件 TTL

javascript - 自动完成搜索有效,但未被选中

node.js - Mongoose findById 查询不返回结果。对象始终为空。

javascript - 以同步方式获取 Javascript Promise 的值

javascript - Discord js 字符串操作

javascript - Discord.js 发送文件

javascript - 如何使用用户控制的切换(启用/禁用)在 iOS 设备(iPad、iPhone、Mac)上禁用滚动/滚动

javascript - 在输入掩码中的 15 个字符后插入 X