开发者问题收集

如何从数组中获取随机值?

2014-10-02
349

这是我想到的,但它不起作用。我没有得到输出。

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>

我在 Google Chrome 控制台中收到 Uncaught TypeError:对象不是函数 JavaScript.js:3。

3个回答

使用 [] 方括号表示数组:

var namein = names[ Math.floor((Math.random() * 5) + 0) ];

此外,您也可以让 JS 进行计数,而不是严格使用 5 (虽然您有 6 个):

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>
Roko C. Buljan
2014-10-02

您的代码运行良好。您必须将 () 更改为 []:

var namein = names(Math.floor((Math.random() * 5) + 0));

正确的代码是:

var namein = names[Math.floor((Math.random() * 5) + 0)];

控制台显示以下错误:“对象不是函数”。

查看此链接 jsfiddle 以查看工作示例。

希望它有用!

Academia
2014-10-02
  • 使用方括号
  • 无需添加 0

var namein = names[Math.floor(Math.random() * 5)];

或使用 ^ 0 进行舍入

var namein = names[Math.random() * 5 ^ 0];

GOTO 0
2014-10-02