在JavaScript中,我们可以使用数组来创建一个做决定的程序(就像Magic8-Ball一样)。然而,首先需要知道获取随机数字的方法。

使用Math.random()

  可以使用一个名为Math.random()的方法来生成随机数字,每次调用它,都会返回0到1之间的一个随机数。如下面的例子所示:

《javascript-少儿编程》第三章数组之随机数

  要注意的很重要的一点就是,Math.random()总是返回小于1的数字,而从不会返回1.

  如果想要更大的数字,只需要把Math.random()的结果乘以一定的倍数。例如,如果想要得到0到10之间的数字,只需要把Math.random()和10相乘。

《javascript-少儿编程》第三章数组之随机数

用Math.floor()取整

  然而,我们无法使用这些数字作为数组的索引,因为索引必须是整数。要满足这个要求,需要使用另一个名为Math.floor()的方法。它会让数字只保留整数部分(放弃小数点后边的数字)。

《javascript-少儿编程》第三章数组之随机数

  可以把这两种技术组合到一起,以创建一个随机索引。需要做的就是把Math.random()和数组的长度相乘,然后对该值调用Math.floor()。例如,这个数组的长度是4,可以这样来做:

Math.floor(Math.random() * 4);
2 // could be 0, 1, 2, or 3

  每次调用上面的代码,都会返回一个0到3之间的随机数(包括0和3).因为Math.random()总是返回小于1的一个值,所以Math.random()*4永远不会返回4或大于4的数字。

  现在,如果使用该随机数作为一个索引,就可以从数组中随机地选择一个元素。

var randomWords = ["Explosion", "Cave", "Princess", "Pen"];
var randomIndex = Math.floor(Math.random() * 4);
randomWords[randomIndex];
"Cave"

  这里使用Math.floor()(Math.random()*4);来获取0到3之间的一个随机数字。一旦把随机数保存到randomIndex变量中,就可以使用它作为索引,从randomWords数组中获取字符串。

  实际上,可以完全把randomIndex变量省略掉,只写成:

randomWords[Math.floor(Math.random() * 4)];
"Princess"

完整的决策者程序

  现在,创建短语的数组,然后可以使用代码来获取一个随机短语。这就是决策者程序!在这里,使用注释来展示你可能会对计算机提出的一些问题。


var phrases = [

"That sounds good",

"Yes, you should definitely do that",

"I'm not sure that's a great idea",

"Maybe not today?",

"Computer says no."

];

// Should I have another milkshake?

phrases[Math.floor(Math.random() * 5)];

"I'm not sure that's a great idea"

// Should I do my homework?

phrases[Math.floor(Math.random() * 5)];

"Maybe not today?"


  创建了一个名为phrases的数组,它用来保存一些不同的建议。现在,每次有了问题,就可以从phrases数组中获取一个随机的值,它会帮助我们做一个决定!

  注意,因为决策数组有5个元素,所以Math.random()要乘以5.这样就会总是返回5个索引位置之一:0、1、2、3、或4.




本站内容未经许可,禁止任何网站及个人进行转载。