【发布时间】:2022-01-22 12:56:49
【问题描述】:
我已经确定了我的百分比以及我的数组。我知道我需要这样做,以便百分比确定选择哪个数组,然后我需要洗牌该数组以使其吐出三个“事物”之一。我知道有一种更简单/更有效的方法可以做到这一点,而无需使用一百万个随机函数来确定“Thing”变量。
目前,它不起作用(吐出“未定义”),但它让我摸不着头脑,因为我不确定问题是什么,并且想要简化它。
代码的全部要点是根据滚动百分比选择一个数组,将该数组随机化,然后吐出它通过洗牌得到的值。
我正在使用的当前绝对垃圾箱火灾:
function generate(){
var tierOne = ["thing one", "thing two", "thing three"]
var tierTwo = ["thing four", "thing five", "thing six"]
var tierThree = ["thing seven", "thing eight", "thing nine"]
var tierFour = ["thing ten", "thing eleven", "thing twelve"]
var tierFive = ["thing thirteen", "thing fourteen", "thing fifteen"]
var percent = r();
if (percent >= 0 && percent < 25) {
shuffle(tierOne)
thing = tierOne;
return thing[0];
} else if (percent >= 25 && percent < 36) {
shuffle(tierTwo)
thing = tierTwo;
return thing[0];
} else if (percent >= 36 && percent < 60) {
shuffle(tierThree)
thing = tierThree;
return thing[0];
} else if (percent >= 60 && percent < 76) {
shuffle(tierFour)
thing = tierFour;
return thing[0];
} else {
shuffle(tierFive)
thing = tierFive;
return thing[0];
}
}
function r() {
Math.floor(Math.random() * 100) + 1;
return Math.floor(Math.random() * 100) + 1;
}```
【问题讨论】:
-
你能解决什么问题吗?你想优化你的代码还是你当前的代码不起作用?
-
进行编辑以澄清我的代码不起作用并且我希望对其进行优化。没有意识到我没有将其添加到我的原始帖子中,谢谢您指出! @丹尼尔克鲁兹
-
洗牌并只取第一项就像在随机索引上挑选一样。
标签: javascript arrays generator shuffle weighted