使用JavaScript写一个含有5个不同元素在1到20之间随机的数组
时间: 2024-03-24 21:38:11 浏览: 118
可以使用JavaScript的Math.random()函数生成0到1之间的随机数,然后乘以范围的长度(即19),再加上最小值(即1),即可生成1到20之间的随机数。然后使用循环来生成5个不同的随机数,将它们放入一个数组中。以下是生成含有5个不同元素在1到20之间随机的数组的代码示例:
```javascript
function getRandomNumber() {
return Math.floor(Math.random() * 19) + 1;
}
function generateRandomArray() {
let arr = [];
while (arr.length < 5) {
let randomNumber = getRandomNumber();
if (!arr.includes(randomNumber)) {
arr.push(randomNumber);
}
}
return arr;
}
// 生成含有5个不同元素在1到20之间随机的数组
console.log(generateRandomArray());
```
每次执行 `generateRandomArray()` 函数都会得到一个不同的结果。
相关问题
实验八 DOM操作(猜成语一) 制作一个“猜成语”游戏的初始化界面。给定一个含有四个成语的数组:["前赴后继","貌合神离","掩人耳目","妙手回春"],要求在页面加载时随机打乱四个成语16个汉字的顺序,并把它们显示在页面上,
实验八中制作"猜成语"游戏的初始化界面需要通过JavaScript和HTML来完成。首先,创建一个HTML结构作为基础,包含四个可以替换的空元素用于显示成语。然后,在JavaScript部分进行以下操作:
1. 定义一个含有四个成语的数组:
```html
<div id="acronym1"></div>
<div id="acronym2"></div>
<div id="acronym3"></div>
<div id="acronym4"></div>
<script>
const acronyms = ["前赴后继", "貌合神离", "掩人耳目", "妙手回春"];
</script>
```
2. 随机打乱成语的汉字顺序:
```javascript
function shuffle(array) {
for (let i = array.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[array[i], array[j]] = [array[j], array[i]];
}
return array;
}
const shuffledAcronyms = shuffle(acronyms);
```
3. 更新DOM,将打乱顺序后的成语显示在页面上:
```javascript
shuffledAcronyms.forEach((acronym, index) => {
const acronymElement = document.getElementById(`acronym${index + 1}`);
let shuffledWords = acronym.split('').join(' ');
acronymElement.innerHTML = shuffledWords;
});
```
现在,当你加载页面时,会看到四个成语的首字被打乱后显示出来,形成一个简单的"猜成语"游戏的初始界面。
js 数组random
### JavaScript 中数组随机操作
#### 随机排序数组
为了实现数组的随机排序,可以采用 Fisher-Yates 洗牌算法来确保每个元素都有相等的概率出现在任何位置。这种方法通过遍历数组并随机交换当前元素与其他未处理过的元素。
```javascript
function shuffleArray(array) {
for (let i = array.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[array[i], array[j]] = [array[j], array[i]];
}
}
```
此函数接收一个数组作为参数,并对其进行就地打乱[^2]。
#### 获取随机元素
如果只需要从数组中获取单个随机元素,则可以通过生成介于 `0` 到数组长度减一之间的一个随机索引来访问该元素:
```javascript
function getRandomElement(arr) {
return arr[Math.floor(Math.random() * arr.length)];
}
```
这段代码定义了一个名为 `getRandomElement` 的函数,它接受一个数组 `arr` 并返回其中任意一项[^1]。
#### 创建带有指定范围内随机数值的数组
当希望创建含有特定数量、其成员位于给定区间内的随机整数构成的新数组时,可使用如下方式构建这样的集合:
```javascript
function generateRandomIntArray(size, minValue, maxValue) {
const result = [];
for (let i = 0; i < size; ++i) {
result.push(Math.floor(Math.random() * (maxValue - minValue + 1)) + minValue);
}
return result;
}
```
上述逻辑实现了根据传入参数自动生成相应规模与界限约束下的伪随机序列的功能。
阅读全文