我编写了一个简单的脚本来从数组中调用随机字符串,但由于某种原因它时不时地显示“未定义”。我从控制台调用了数组的第一个和最后一个(0 和 42),它们提取了正确的项目。我使用的是 Chrome 浏览器。
document.getElementById("pick").addEventListener("click", function({
document.getElementById("restaurant").innerHTML =
restaurants[Math.floor(Math.random() * restaurants.length - 1)];
});
功能示例可以在以下位置找到: LunchBOX
最佳答案
发生这种情况是因为数学运算的顺序不正确。
例如,Math.random()
返回 0.01
,然后将其乘以 restaurants.length
,可能是 10。然后您有0.1,那么减1就是-0.9。之后它向下舍入并变为-1。 restaurants[-1]
是未定义
。
做到:
Math.floor(Math.random() * (restaurants.length - 1))]
关于Javascript - 从数组中提取随机字符串并得到未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35180997/