Javascript 可以通过“调用”调用JSON数组;或;指挥部?

Javascript 可以通过“调用”调用JSON数组;或;指挥部?,javascript,node.js,discord.js,Javascript,Node.js,Discord.js,我有一个关于JSON对象的问题 我有一个.json文件,看起来像这样 { "Plate Boots": { "T4": [], "T5": [] }, "Plate Armor": { "T4": [], "T5": [] }, "Plate Helmet": { "T4": [], "T5": [] } } 我希望能够通过在discord服务器中键

我有一个关于JSON对象的问题

我有一个.json文件,看起来像这样

{
    "Plate Boots": {
        "T4": [],
        "T5": []
    },
    "Plate Armor": {
        "T4": [],
        "T5": []
    },
    "Plate Helmet": {
        "T4": [],
        "T5": []
    }
}

我希望能够通过在discord服务器中键入命令,将userID放入对象的[]中。我只是想知道,最简单的方法是什么

if (message.content.startsWith(prefix + " craft")) {
  }
命令将message.author.id放入对象中。 让我举个例子:

User1可以制作T4板靴,因此他希望在JSON文件中属于“Plate Boots-T4”类别。
因此,User1在discord服务器中键入“!v craft T4 Plate Boots”(!v是我的前缀)。
机器人将其message.author.id推送到“T4”:[*在这里*”
我该如何着手做这件事呢

if (message.content.startsWith(prefix + " craft")) {
  }

对于这类事情?

是的,这是可能的。如果格式总是像它的2个世界类别,并键入它的1个世界类别,您可以按如下操作

const fs=require('fs'))
const crafts=require('./FILEPATCH');
if(message.content.startsWith(前缀+“craft”)){
设args=message.content.split(“”)
if(args.length<4)返回message.reply('格式不正确,请使用`!v craft T4 Plate Boots`'))
让category=args.splice(args.length-2,2).join(“”)
let type=args[args.length-1]
if(!crafts.hasOwnProperty(category))返回message.reply('格式不正确,请使用`!v craft T4 Plate Boots`'))
if(!crafts[category].hasOwnProperty(type))返回消息.reply('格式不正确,使用“!v craft T4 Plate Boots`'))
crafts[类别][类型].push(message.author.id)
writeFileSync('filepatch/craft.json',json.stringify(crafts));
}

嗨!欢迎来到StackOverflow。到目前为止你试过什么?你被困在哪里?尽量缩小问题的范围,这样我们才能更好地帮助你。你又这么做了!非常感谢。嘿,密码。我认为我的解释没有真正起作用。我在json中有很多这样的内容。27准确地说,他们都有T4、T5、T6、T7和T8。像这样的
“板靴”:{“T4”:[],“T5”:[],“T6”:[],“T7”:[],“T8”:[],“板甲”:{“T4”:[],“T5”:[],“T6”:[],“T7”:[],“T8”:[],
但是你写的代码,不会让我被放在T4板靴以外的物体里。我想我已经找到了原因。每次我打字!v craft,然后后跟2个单词的东西,就行了。如果JSON文件中的项只有一个单词,它将不会写入。我能不能让它也接受一个词?例如“T7弓”嗯,你的代码中t4,t5是什么?