javascript - JS:我如何使这个脚本更小。随机对象
问题描述
过去几个月通过一些教程(代码学院/免费代码营等)学习了 Javascript,并希望使用我学到的东西来自己构建一些东西。
我构建了一个随机数生成器,它将 5 个随机数推送到一个包含 5 个空数组的对象中。该脚本有效。但我认为它可以更干净,代码更少。我只是不知道该怎么做。
在这里的任何建议将不胜感激,因为我仍在学习。
(我已经意识到这里还有一个错误,这意味着其中一个“票”中可能有重复的数字。-需要在某个时候解决这个问题 {haha} )
这是我的脚本:
function RanNum(max) {
return Math.floor(Math.random() * max)
}
const LOTO_ARRAY = 5;
const lotto1Array = [];
const lotto2Array = [];
const lotto3Array = [];
const lotto4Array = [];
const lotto5Array = [];
for (let i = 0; i<LOTO_ARRAY; i++){
lotto1Array.push(RanNum(56))
lotto2Array.push(RanNum(56))
lotto3Array.push(RanNum(56))
lotto4Array.push(RanNum(56))
lotto5Array.push(RanNum(56))
}
var ticket = {
"ticket one" : [],
"ticket two" : [],
"ticket three" : [],
"ticket four" : [],
"ticket five" : []
};
ticket["ticket one"] = lotto1Array
ticket["ticket two"] = lotto2Array
ticket["ticket three"] = lotto3Array
ticket["ticket four"] = lotto4Array
ticket["ticket five"] = lotto5Array
console.log(ticket);
解决方案
感谢所有输入的家伙,对我理解使用 JS 的不同方法非常有帮助。
我回去重新编写了我的脚本。我最终用“箭头函数”替换了“函数”——从可读性 POV 来看,这是一个好的举措吗?
randomNumber = (max) => Math.floor(Math.random() * max);
getTicket = () => Array.from({ length: 5 }, () => randomNumber(56));
getStarNumber = () => Array.from({ length: 2 }, () => randomNumber(10));
const ticket = {
"Ticket One" : getTicket() + " | " + getStarNumber(),
"Ticket Two" : getTicket() + " | " + getStarNumber(),
"Ticket Three" : getTicket() + " | " + getStarNumber(),
"Ticket Four" : getTicket() + " | " + getStarNumber(),
"Ticket Five" : getTicket() + " | " + getStarNumber(),
}
console.log(ticket)
推荐阅读
- python-3.x - 创建自定义模型 Django 超级用户时出现问题
- typescript - TSOA swagger 无法生成开放 api
- r - 将图例标签添加到 ggplot 的条形图
- c - 我如何修复可视代码中的路径错误
- .htaccess - 如何拒绝查询字符串以主题标签开头的 URL?
- xampp - Xampp localhost 在已发送文件夹中保存副本
- flutter - 将google_mobile_ads、firebase_admob或admob_flutter包添加到我的项目后,模拟器无法打开项目
- vb.net - 编写一个简单的 Invoice Total 程序,我不知道自己做错了什么
- html - 在 CSS 中使用 flex-order 的用例是什么?
- c# - 从基本记录继承时在构造函数中创建属性,那么为什么不创建自己的属性