Javascript 从数组中检索到的变量未定义?

Javascript 从数组中检索到的变量未定义?,javascript,jquery,Javascript,Jquery,下面的代码包括一个名为buttonColours的数组,它是一个0到3的随机数,那么RandomColor应该是buttonColours数组中的随机颜色,但它不是。它将随机颜色分类为未定义 var按钮颜色=[蓝色、红色、绿色]; var randomNumber=Math.floorMath.random*3; var RandomColor=按钮颜色[随机数]; 控制台颜色 如果您在每行上都执行了console.log,您将直接知道问题: var按钮颜色=[蓝色、红色、绿色]; cons

下面的代码包括一个名为buttonColours的数组,它是一个0到3的随机数,那么RandomColor应该是buttonColours数组中的随机颜色,但它不是。它将随机颜色分类为未定义

var按钮颜色=[蓝色、红色、绿色]; var randomNumber=Math.floorMath.random*3; var RandomColor=按钮颜色[随机数];
控制台颜色 如果您在每行上都执行了console.log,您将直接知道问题:

var按钮颜色=[蓝色、红色、绿色]; console.logbuttoncolors;//[蓝、红、绿] var randomNumber=Math.floorMath.random*3; console.lograndomNumber;//楠 var RandomColor=按钮颜色[随机数];
console.lograndomColor;//未定义我认为这就是你想要实现的

如果您试图找出每一行的结果,您就会知道Math.floorMath.random*3返回“Nan”,因此当您尝试选择该位置的元素时,finally将是未定义的

这返回Nan,因为Math.random是一个函数,您需要调用一个函数。正如你在我的代码中看到的,它是Math.random

var按钮颜色=[蓝色、红色、绿色]; var RANDOMCOLOURS=按钮颜色[Math.floorMath.random*按钮颜色.length];
控制台颜色 你可以通过这个函数得到一个范围内的随机数。Math.random返回[0,1]范围内的随机值。因此,必须将[0,1]映射到给定的范围

function getRandom(min, max) {
  return Math.floor(Math.random() * (max-min) + min);
}
请在此代码段中查看您的解决方案-

var按钮颜色=[蓝色、红色、绿色]; var randomNumber=getRandom0,buttonColor.length; var RandomColor=按钮颜色[随机数]; 控制台颜色; 函数getRandommin,max{ 返回Math.floorMath.random*max-min+min; } 问题在于:

var randomNumber = Math.floor(Math.random * 3);
Math.random是Math对象的一个方法,而不是属性,因此需要调用它。调用是通过在函数名后面加上一对括号来完成的,因此要调用名为sayHello的函数,我将执行以下操作:

sayHello()
要解决您的问题,请在Math.random后面放置一对括号,使该行如下所示:

var randomNumber = Math.floo(Math.random() * 3);
如果您想知道Math.random的实际功能,请查看:

Math.random函数返回0–1范围内的浮点伪随机数,包括0,但不包括1

所以本质上它返回一个从0到0.9999999的随机数…,这就是为什么您的代码行:

Math.floor(Math.random() * 3)

返回整数0、1或2,但不是3。

Math.random是一个需要调用的函数。现在您正在执行与函数*3等效的操作,这当然是一个无效的数学运算,因此结果不是数字。代码的第二行应该是var randomNumber=Math.floorMath.random*3;