问题描述
var randomDescriptor1 = descriptors[getRandomIndex(descriptors)];
tagline1.innerText = randomDescriptor1;
var randomDescriptor2 = descriptors[getRandomIndex(descriptors)];
tagline2.innerText = randomDescriptor2;
function getRandomIndex(array) {
return Math.floor(Math.random() * array.length);
}
我正在使用dom更改HTML文件,并希望在同一句子中生成随机描述符。我从存储的字符串数组中提取数据,但是有时它们碰巧在句子中两次返回相同的单词。我如何避免这种情况?
解决方法
const desc = Object.assign([],descriptors)
var randomDescriptor1 = getRandomDescriptor(desc);
tagline1.innerText = randomDescriptor1;
var randomDescriptor2 = getRandomDescriptor(desc)
tagline2.innerText = randomDescriptor2;
// you can delete have used item,you will always get a new one
function getRandomDescriptor(array) {
const randomNum = Math.floor(Math.random() * array.length);
const value = array[randomNum]
array.splice(randomNum,1)
return value
}