[英]How to use a variable in Math.floor
我想获得一个人拥有的最大金钱
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
:
Math.random() * undefined -> NaN
我将确保targetForMath是有效数字。
除了要说您正在做并且应该注意这一点之外,我不会说您正在混合var
和let
。 我问的第一个问题是什么typeof
userData[targetUser.id].money
是,更具体地说它的价值是什么。 如果它是数字,布尔值, null
或空数组(?!),则它应该可以工作,或者至少不返回NaN。 但是,如果它是字符串,未定义或任何其他值,则JavaScript不会真正知道您说的意思,例如,将Math.random()
乘以"fish"
。
通常在这种情况下,最好console.log
出什么是userData[targetUser.id]
,以确保从中获得的对象实际上就是您认为的那样。 实际上,由targetUser
的ID定义的userData
对象上是否存在属性?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.