如何避免使用分配给两个变量的随机数生成器生成相同的数字?

问题描述

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
}