首页 > 解决方案 > 根据数字将 message.author.id 放入多个数组中?

问题描述

这可能是一个很长的镜头......我有一个将 message.author.id 放在 JSON 文件中的数组中的代码。

看起来像这样

    if(message.content.startsWith (prefix + " craft")) {
        let editedmessage = message.content.slice(prefix.length + 1);
        let skill = message.content.toLowerCase().slice(9);

        if(!client.msgs[skill]) return message.reply("I cant find that skill"); {
            client.msgs[skill] = [message.author.id]
        }
            if(!client.msgs[skill].includes(message.author.id)) client.msgs[skill].push(message.author.id);
            {

            message.reply("You can now " + editedmessage)
        }
    }

如果写在 discord 上的命令是 ex。“!v craft T5 Bow”它会像这样输入id

 "T5 Bow": [
        "95790380057894912"
    ],

这就是我的问题出现的原因。T5 弓也以 T4 弓、T6 弓、T7 弓和 T8 弓的形式存在。有没有办法对多个数组下使用该命令的所有成员进行排序。T代表Tier,所以T5弓是Tier 5弓。但是如果你可以制作 5 阶弓,你也可以制作 4 阶弓。

举个例子。如果用户写“!v craft T6 Bow”,则应将其放入“T4 Bow”,“T5 Bow”和“T6 Bow”中

这可能吗?

这就是我的 JSON 文件的样子

{
    "T4 Plate Boots": [],
    "T4 Plate Armor": [],
    "T4 Plate Helmet": [],
    "T4 Sword": [],
    "T4 Battleaxe": [],
    "T4 Mace": [],
    "T4 Hammer": [],
    "T4 Crossbow": [],
    "T4 Shield": [],
    "T4 Leather Shoes": [],
    "T4 Leather Jacket": [],
    "T4 Leather Hood": [],
    "T4 Bow": [],
    "T4 Spear": [],
    "T4 Nature Staff": [],
    "T4 Dagger": [],
    "T4 Quarterstaff": [],
    "T4 Torch": [],
    "T4 Demolition Hammer": [],
    "T4 Bag": [],
    "T4 Cape": [],
    "T4 Fisherman": [],
    "T4 Lumberjack": [],
    "T4 Quarrier": [],
    "T4 Miner": [],
    "T4 Skinner": [],
    "T4 Harvester": [],
    "T5 Plate Boots": [],
    "T5 Plate Armor": [],
    "T5 Plate Helmet": [],
    "T5 Sword": [],
    "T5 Battleaxe": [],
    "T5 Mace": [],
    "T5 Hammer": [],
    "T5 Crossbow": [],
    "T5 Shield": [],
    "T5 Leather Shoes": [],
    "T5 Leather Jacket": [],
    "T5 Leather Hood": [],
    "T5 Bow": [
        "95790380057894912"
    ],
    "T5 Spear": [],
    "T5 Nature Staff": [],
    "T5 Dagger": [],
    "T5 Quarterstaff": [],
    "T5 Torch": [],
    "T5 Demolition Hammer": [],
    "T5 Bag": [],
    "T5 Cape": [],
    "T5 Fisherman": [],
    "T5 Lumberjack": [],
    "T5 Quarrier": [],
    "T5 Miner": [],
    "T5 Skinner": [],
    "T5 Harvester": [],
    "T6 Plate Boots": [],
    "T6 Plate Armor": [],
    "T6 Plate Helmet": [],
    "T6 Sword": [],
    "T6 Battleaxe": [],
    "T6 Mace": [],
    "T6 Hammer": [],
    "T6 Crossbow": [],
    "T6 Shield": [],
    "T6 Leather Shoes": [],
    "T6 Leather Jacket": [],
    "T6 Leather Hood": [],
    "T6 Bow": [],
    "T6 Spear": [],
    "T6 Nature Staff": [],
    "T6 Dagger": [],
    "T6 Quarterstaff": [],
    "T6 Torch": [],
    "T6 Demolition Hammer": [],
    "T6 Bag": [],
    "T6 Cape": [],
    "T6 Fisherman": [],
    "T6 Lumberjack": [],
    "T6 Quarrier": [],
    "T6 Miner": [],
    "T6 Skinner": [],
    "T6 Harvester": [],
    "T7 Plate Boots": [],
    "T7 Plate Armor": [],
    "T7 Plate Helmet": [],
    "T7 Sword": [],
    "T7 Battleaxe": [],
    "T7 Mace": [],
    "T7 Hammer": [],
    "T7 Crossbow": [],
    "T7 Shield": [],
    "T7 Leather Shoes": [],
    "T7 Leather Jacket": [],
    "T7 Leather Hood": [],
    "T7 Bow": [
        "95790380057894912"
    ],
    "T7 Spear": [],
    "T7 Nature Staff": [],
    "T7 Dagger": [],
    "T7 Quarterstaff": [],
    "T7 Torch": [],
    "T7 Demolition Hammer": [],
    "T7 Bag": [],
    "T7 Cape": [],
    "T7 Fisherman": [],
    "T7 Lumberjack": [],
    "T7 Quarrier": [],
    "T7 Miner": [],
    "T7 Skinner": [],
    "T7 Harvester": [],
    "T8 Plate Boots": [],
    "T8 Plate Armor": [],
    "T8 Plate Helmet": [],
    "T8 Sword": [],
    "T8 Battleaxe": [],
    "T8 Mace": [],
    "T8 Hammer": [],
    "T8 Crossbow": [],
    "T8 Shield": [],
    "T8 Leather Shoes": [],
    "T8 Leather Jacket": [],
    "T8 Leather Hood": [],
    "T8 Bow": [
        "95790380057894912"
    ],
    "T8 Spear": [],
    "T8 Nature Staff": [],
    "T8 Dagger": [],
    "T8 Quarterstaff": [],
    "T8 Torch": [],
    "T8 Demolition Hammer": [],
    "T8 Bag": [],
    "T8 Cape": [],
    "T8 Fisherman": [],
    "T8 Lumberjack": [],
    "T8 Quarrier": [],
    "T8 Miner": [],
    "T8 Skinner": [],
    "T8 Harvester": []
}

标签: javascriptnode.jsdiscord.js

解决方案


我建议使用基于对象的数据结构。您可以根据项目类型订购它,并在其下方排序。

{
   "PlateBoots": {
      "T4": [],
      "T5": []
      // etc
    },
}

一旦你解析了你的 JSON,你就可以用对象表示法访问这些:

let tier4PlateBoots = myJson.PlateBoots.T4;

然后,您可以使用循环遍历所有这些。

for(let boots in myJson.PlateBoots)
{ // Loops through each tier
   for(let player of boots)
   {
       // Loops through each person
   }
}

推荐阅读