如何在 Math.floor 中使用变量
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
是什么,更具体地说,它的 value 是什么。如果它是一个数字、布尔值、null
或空数组 (?!),它应该可以工作,或者至少不是 return NaN。但是,如果它是字符串、未定义或任何其他值,JavaScript 将不会真正理解您说的意思,例如,乘以 Math.random()
乘以 "fish"
.
通常在这种情况下,console.log
弄清楚 userData[targetUser.id]
是什么是个好主意,只是为了确保您从中返回的对象确实是您认为的那样。在 targetUser
的 id 定义的 userData
对象上实际上有一个 属性 吗?
我想得到一个人拥有的最大金额
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
是什么,更具体地说,它的 value 是什么。如果它是一个数字、布尔值、null
或空数组 (?!),它应该可以工作,或者至少不是 return NaN。但是,如果它是字符串、未定义或任何其他值,JavaScript 将不会真正理解您说的意思,例如,乘以 Math.random()
乘以 "fish"
.
通常在这种情况下,console.log
弄清楚 userData[targetUser.id]
是什么是个好主意,只是为了确保您从中返回的对象确实是您认为的那样。在 targetUser
的 id 定义的 userData
对象上实际上有一个 属性 吗?