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