javascript - 根据数字将 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": []
}
解决方案
我建议使用基于对象的数据结构。您可以根据项目类型订购它,并在其下方排序。
{
"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
}
}
推荐阅读
- javascript - 给出一个 div 可以回退的默认文本
- javascript - GM.xmlHttpRequest : 无法理解 URL
- mysql - 找不到mysql进程的最大打开文件(ulimit)的来源
- google-maps - 根据地图的 DeltaLatitude,我如何知道当前是否查看了地图中的某个点?
- python - 使用 Keras LSTM 进行多对多分类
- python - 如何使用 pytest 测试状态机?
- wordpress - httpd 使用大量内存?
- sql - SELECT 查询中的索引扫描缓慢
- webgl2 - gl_PointSize、gl_Position、gl_FragCoord之间的关系
- node.js - 使用节点模块usb和pcsclite时出现节点错误