javascript - Node.js 正在捉弄我。使用数组生成随机名称和推文

标签 javascript arrays random

这个问题涉及一段应该生成随机推文的代码片段。然而,我不明白到底发生了什么;尤其是

Math.floor(Math.random() * arr.length)  

我的猜测是,它选择一个随机数组长度,将其 chop 为最小整数,然后指定为 randArrayEl[] 的数组长度。

但是,我不明白它如何选择具有以下内容的随机名字和姓氏:

  return randArrayEl(fakeFirsts) + " " + randArrayEl(fakeLasts);

这是完整的代码。谁能解释一下每一行的逻辑?

var randArrayEl = function(arr)
{
  return arr[Math.floor(Math.random() * arr.length)];
};

var getFakeName = function()
{
  var fakeFirsts = ['Nimit', 'Dave', 'Will', 'Charlotte', 'Jacob','Ethan','Sophia','Emma','Madison'];
  var fakeLasts = ["Alley", 'Stacky', 'Fullstackerson', 'Nerd', 'Ashby', 'Gatsby', 'Hazelnut', 'Cookie', 'Tilde', 'Dash'];
  return randArrayEl(fakeFirsts) + " " + randArrayEl(fakeLasts);
};

var getFakeTweet = function()
{
  var awesome_adj = ['awesome','breathtaking','amazing','sexy','sweet','cool','wonderful','mindblowing'];
  return "Fullstack Academy is " + randArrayEl(awesome_adj) + "! The instructors are just so " + randArrayEl(awesome_adj) + ". #fullstacklove #codedreams";
};

for(var i=0; i<10; i++)
{
  store.push(getFakeName(), getFakeTweet());
}

另外,最后的 for 循环应该做什么?

最佳答案

randArrayEl 返回数组中的随机元素。它通过选择 0 到 arr.length-1 之间的随机整数(因为 Math.random() 永远不会返回 1)并从数组中返回该元素来实现此目的.

因此,randArrayEl(fakeFirsts)fakeFirsts 数组中返回一个随机名称,randArrayEl(fakeLasts) 也是如此。将它们与空格连接起来,您就得到了随机的名字和姓氏组合!

getFakeTweet 的工作方式与 randArrayEl(awesome_adj) 类似,用于描述 Fullstack Academy。

最后,for 循环将 10 条随机推文和关联的随机名称放入 store 数组中。

关于javascript - Node.js 正在捉弄我。使用数组生成随机名称和推文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23376088/

相关文章:

java - 向 Java gui 添加方法

c - 两个随机数组

python - 为什么结果总是在 2.87 左右

Python 增量填充 x 和 y 值

javascript - 将 PHP 函数更改为 Javascript/AJAX 验证

javascript - 将字符串替换为文本

javascript - 背景轮播在幻灯片图像中包含 DIV

c++ - 数组和sizeof麻烦编译错误C++

c++ - 为什么 C++ 和 R 中的这些 RNG 不会产生相似的结果?

javascript - 更改突出显示颜色