首页 > 解决方案 > 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);

标签: javascriptarraysobject

解决方案


感谢所有输入的家伙,对我理解使用 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)


推荐阅读