Javascript 如何在Math.floor中使用变量
我想得到一个人拥有的最大金额的钱Javascript 如何在Math.floor中使用变量,javascript,bots,discord,discord.js,Javascript,Bots,Discord,Discord.js,我想得到一个人拥有的最大金额的钱 let targetUser = message.guild.member(message.mentions.users.first()) || message.guild.members.get(args[0]); var targetForMath = userData[targetUser.id].money; 我想用这个变量来设置Math.floor的最大值。我试过了 let randomStealCoins = Math.floor(Math.ran
let targetUser = message.guild.member(message.mentions.users.first()) || message.guild.members.get(args[0]);
var targetForMath = userData[targetUser.id].money;
我想用这个变量来设置Math.floor的最大值。我试过了
let randomStealCoins = Math.floor(Math.random() * targetForMath) + 1;
但是当我使用它时,它给了我NaN。我怎样才能使它给我一个实际的数字,而不是奇怪的东西呢?如果
targetForMath
未定义,那将给你NaN
:
自:
我会确保targetForMath是一个有效的数字。如果
targetForMath
未定义,则将为您提供NaN
:
自:
我会确保targetForMath是一个有效的数字。我不会提到你混合了
var
和let
,而是说你正在这样做,应该小心。
我要问的第一个问题是,userData[targetUser.id].money的类型是什么,更具体地说,它的价值是什么。如果它是一个数字、布尔值、null
或空数组(?),它应该可以工作,或者至少不返回NaN。但是,如果它是一个字符串、未定义的值或任何其他值,JavaScript就不会真正知道您说的是什么意思,例如,multiplyMath.random()
times“fish”
通常在这种情况下,最好是控制台。记录用户数据[targetUser.id]
是什么,以确保从中获取的对象实际上就是您认为的对象。targetUser
的id定义的userData
对象上是否真的有一个属性?我不想说你混合了var
和let
,只是说你正在这样做,而且应该小心。
我要问的第一个问题是,userData[targetUser.id].money的类型是什么,更具体地说,它的价值是什么。如果它是一个数字、布尔值、null
或空数组(?),它应该可以工作,或者至少不返回NaN。但是,如果它是一个字符串、未定义的值或任何其他值,JavaScript就不会真正知道您说的是什么意思,例如,multiplyMath.random()
times“fish”
通常在这种情况下,最好是控制台。记录用户数据[targetUser.id]
是什么,以确保从中获取的对象实际上就是您认为的对象。targetUser
的id定义的userData
对象上是否确实存在属性?请给出一些message
和userData
的示例。discord userData中的message=message是一个存储数据的.json请给出一些message
和userData
的示例在discord中,userData是一个.json,它存储数据是我在需要使用它时意外定义的targetForMath。我修复了它。是的,在我需要使用它之后,我意外地定义了targetForMath。我修复了它。当时我正在测试var或let是否有效,但无论如何我修复了它。感谢您在我测试var或let是否有效时提供帮助,但不管怎样,我已经修复了它。谢谢你的帮助
Math.random() * undefined -> NaN