我对编码和开发第一个Javascript项目非常陌生。我试图创建一个随机选择一个设置的小型随机字符生成器,以及两个数组中的字符原型。我的问题是我不断得到重复,可能是由于列表的小尺寸。防止随机操作在Javascript中返回两次相同的值
<html>
<head>
<script type="text/javascript">
var setting=new Array('Steampunk',
'Fuedal Japanese',
'Post Apocalyptic',
'Horror',
'Fantasy',
'Cyberpunk',
'Western',
'Pulp',
'Military',
'Space Opera',
'Medieval',
'Ancient',
'Mythological',
'Urban',
'Trans-Humanist',
'Renaissance',
'Dystopian',
'Retro Futuristic',
'Nordic',
'Colonial');
var Archetype=new Array('Ninja',
'Samurai',
'Viking',
'Cowboy',
'Rogue',
'Wizard',
'Wrestler/Luchador',
'Knight',
'Scientist',
'Gadgeteer',
'Druid',
'Performer',
'Pirate',
'Alien',
'Superhero/Villain',
'Robot',
'Soldier',
'Vampire',
'Werewolf',
'Bounty Hunter');
function resetSettingAndArchetype()
{
var whichsetting = Math.floor(Math.random()*(setting.length));
var whicharchetype = Math.floor(Math.random()*(Archetype.length));
如何获得随机操作永不会返回相同的值两次?
我想在这里添加一件事。如果你想保留原始数组,然后创建原始数组的副本,然后使用复制的数组进行混洗。 – Anoop
Fisher-Yates可用于高效地初始化阵列(制作混洗副本)或执行就地洗牌。 – nneonneo