为了账号安全,请及时绑定邮箱和手机立即绑定

对象的返回值

对象的返回值

哆啦的时光机 2023-05-25 15:36:32
我正在尝试为我的 discord.js 机器人创建一个积分系统(您可以使用命令进行验证以检查您是否完成了挑战,如果是,机器人会给您积分)。我找不到检查值是否正确的方法。该命令如下所示:!verify <flag-name> <value>这是我的代码:const Discord = require('discord.js');const flag = { flag1: { value: 'test', points: 20 }, flag2: { value: 'test2', points: 30 },};module.exports.run = async (client, message) => { let args = message.content.slice(4).split(' '); var keys = Object.keys(flag); keys.forEach((key) => {  if (key == args[2]) {   var str = JSON.stringify(keys);   var result = JSON.parse(str);   console.log(result['value']);  } });};问题是result['value']总是返回undefined,即使我知道标志名称和值是有效的。
查看完整描述

1 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞

Object.entries()您可以使用和检查值是否正确Array.prototype.find()

const flag = {

 flag1: { value: 'test', points: 20 },

 flag2: { value: 'test2', points: 30 },

};


module.exports.run = async (client, message) => {

 // get the challenge and value using destructuring

 let [cmd, challenge, value] = message.content.slice(4).split(' ');


 // find the entry with both names matching the names given

 const result = Object.entries(flag).find(

  ([flag, data]) => flag === challenge && data.value === value

 );


 // provide an error if nothing is found

 if (!result)

  return message.channel.send('Not a valid value and/or flag');


 // do something with the points

 console.log(result[1].points)

};

JSFiddle


查看完整回答
反对 回复 2023-05-25
  • 1 回答
  • 0 关注
  • 119 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信