javascript - 有什么方法可以将消息参数与 .json 文件进行比较
问题描述
我有这个代码:
const Command = require("../Structures/Command.js");
const { menu } = require("../data/menu.json");
module.exports = new Command({
name: "order",
description: "Make an order",
async run(message, args, client){
args.toString().toLowerCase();
switch(args[1]){
case menu[1]:
message.reply(`accepted your order for ${menu[1]}!`);
break;
case menu[0]:
message.reply(`accepted your order for ${menu[0]}`);
break;
case menu[2]:
message.reply(`accepted your order for a ${menu[2]}`);
break;
default:
message.reply(`sorry, we either don't serve that here, or you didn't say what you want to order`);
}
}
})
我想要它做什么:
- 检查参数
- 比较 args 是否是任何菜单元素
- 根据元素给出答案,例如
:
if(args == menu){
message.reply(`accepted your order for ${menu[args]}!`);
}
菜单.json:
{
"menu": ["coffee", "donut", "tea"]
}
我知道这听起来有点令人困惑,但我希望你能提供帮助。
解决方案
我认为这样的事情会奏效!
var menu = ["coffee", "donut", "tea"];
var args = "Tea";
if(menu.includes(args.toLowerCase())) {
console.log("Order accept " + menu[menu.indexOf(args.toLowerCase())]);
}else {
console.log("Product not found");
}
推荐阅读
- c# - 统一:绳索摆动 3d 角色在开始时跳跃
- docker - 如何创建 Docker 本地私有仓库
- vue.js - 两个组件之间的通信(与子父级无关)
- azure-powershell - SAS 令牌作为 SecureString 不适用于使用 Azure PowerShell 的 ARM 模板部署
- if-statement - 如何在jmeter的if控制器中使用属性变量
- javascript - 从中读取 [.] 的 URL 扩展
- selenium-webdriver - 如何在 IE11 中找出基于客户端服务器的 Web 应用程序中元素的 xpath?
- certificate - 用于在 Java 中签署证书的智能卡类型
- javascript - 情节线后的Highcharts标记
- cpanel - 阻止 Centos 邮件服务器发送垃圾邮件并将邮件路由到托管邮件 (G-Suite)