如何从数组中获取随机值
How to get random value from an array?
这是我想到的,但它不起作用。我没有输出。
Javascript.js
function randomnamegen() {
var names = ["Mango", "Pul", "Bat", "Tim", "Mh", "Hei"];
var namein = names(Math.floor((Math.random() * 5) + 0));
document.getElementById("name").innerHTML = namein;
}
index.html
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Cherry Cheese Danish</title>
</head>
<body>
<button type="button" onclick="randomnamegen()">Click Me!</button>
<p id="name"></p>
<script src="JavaScript.js"></script>
</body>
</html>
我得到一个Uncaught TypeError:对象不是googlechrome控制台中的函数JavaScript.js:3。
对数组使用[]
方括号:
var namein = names[ Math.floor((Math.random() * 5) + 0) ];
此外,不用严格使用5
(当你有6个时),你可以让JS来计数:
Math.random() * names.length
function randomnamegen() {
var names = ["Mango", "Pul", "Bat", "Tim", "Mh", "Hei"];
var namein = names[ Math.floor(Math.random() * names.length) ];
document.getElementById("name").innerHTML = namein;
}
<button type="button" onclick="randomnamegen()">Click Me!</button>
<p id="name"></p>
您的代码运行得很好。您必须在中通过[]更改()
var namein = names(Math.floor((Math.random() * 5) + 0));
正确的是:
var namein = names[Math.floor((Math.random() * 5) + 0)];
控制台给出以下错误:"对象不是函数"。
请查看此链接jsfiddle以查看工作示例。
希望它有用!
- 使用方括号
- 无需添加0
var namein = names[Math.floor(Math.random() * 5)];
或使用^ 0
进行舍入
var namein = names[Math.random() * 5 ^ 0];
这是一个Fisher Yates实现,旨在打乱数组。
function shuffle(array) {
var currentIndex = array.length,
temporaryValue,
randomIndex;
while (0 !== currentIndex) {
randomIndex = Math.floor(Math.random() * currentIndex);
currentIndex -= 1;
temporaryValue = array[currentIndex];
array[currentIndex] = array[randomIndex];
array[randomIndex] = temporaryValue;
}
return array;
}
打乱数组后,您可以检索如下值:
var array = [1, 2, 3, 4, 5];
function retrieve() {
return shuffle(array)[0];
}
如果你不想让你的物品重复:
var array = [1, 2, 3, 4, 5],
temp = [];
function retrieve() {
if(temp.length > 0) {
return temp.pop();
} else {
temp = shuffle(array.slice());
return temp.pop();
}
}
但不确定这是否是最佳答案。
function shuffle(array) {
var currentIndex = array.length,
temporaryValue,
randomIndex;
while (0 !== currentIndex) {
randomIndex = Math.floor(Math.random() * currentIndex);
currentIndex -= 1;
temporaryValue = array[currentIndex];
array[currentIndex] = array[randomIndex];
array[randomIndex] = temporaryValue;
}
return array;
}
var array = ["Mango", "Pul", "Bat", "Tim", "Mh", "Hei"];
function retrieve() {
document.getElementById("name").innerHTML = shuffle(array)[0];
}
<button type="button" onclick="retrieve()">Click Me!</button>
<p id="name"></p>
相关文章:
- Spotify API:获取随机歌曲
- 获取随机jQuery对象的属性
- 如何从数组中获取随机元素而不重复并将其放入文本区域
- Javascript - 从表单中获取复选框值并获取随机结果
- 如何在支柱设置标签中获取随机值
- 如何从实时数据中获取随机输出
- JQuery - 从带有元素的变量中获取随机文本
- 谷歌地图API使用Math.random获取随机位置 - JS
- 在javascript中获取随机背景色
- 根据数字和计数从 0 到 1 获取“随机”数
- 从单独的文件中获取随机对象
- 使用php和mysql获取随机id
- 使用javascript获取随机值
- 如何从数组中获取随机值
- 如何生成一个随机数来从数组中获取随机对象
- 从javascript中的关联数组中获取随机元素
- 使用javascript,我希望能够获取随机动态变化的字体颜色
- 从数组中获取随机元素返回相同的元素
- 在JavaScript中获取随机值1或3
- 从Javascript中的两个子数组中获取随机结果