Javascript - 从数组中提取随机字符串并获取未定义
Javascript - pulling a random string from an array and getting undefined
我写了一个简单的脚本来调用数组中的随机字符串,但由于某种原因,它时不时地显示"undefined"。 我已经从控制台调用了数组的第一个和最后一个(0 和 42(,它们拉取了正确的项目。 我使用的是 Chrome 浏览器。
document.getElementById("pick").addEventListener("click", function({
document.getElementById("restaurant").innerHTML =
restaurants[Math.floor(Math.random() * restaurants.length - 1)];
});
功能示例可在以下位置找到:午餐盒
发生这种情况是因为数学运算的顺序不正确。
例如,Math.random()
返回 0.01
,然后乘以 restaurants.length
,可能是 10。 然后你有 0.1,然后减去 1,然后是 -0.9。之后,它向下舍入并变为 -1。 restaurants[-1]
是undefined
.
来得及:
Math.floor(Math.random() * (restaurants.length - 1))]
正确的句子是:
Math.floor(Math.random() * restaurants.length)
random(( 方法返回一个从 0(含(到但不包括 1(不包括(的随机数。该指数永远不会等于 restaurants.length。
相关文章:
- 如何将字符串拆分为字符,但在javascript中保留空格
- 如何显示字符串中最多 200 个字符
- 我想在Javascript中探索类似C语言的字符串的整个字符
- 如何用jquery替换字符串中可能变化的字符
- 通过跳过拆分字符在 javascript 中拆分字符串
- 使用正则表达式匹配长度为六个字符的字母数字字符串
- 字符串替换-不支持格式字符'}'
- 到UpperCase字符串Javascript中的特定字符索引
- 用类javascript包装span标记中字符串中的字符索引
- 将字符串分组为n个字符的块,并应用替换
- 如何检查一个字符串的所有字符是否都存在于另一个字符串中
- 如何从键Code;中获取字符串/字符值;
- 检查值是否包含字符串字符
- JavaScript字符串字符操作
- 如果数组中的字符串不匹配,请从字符串中删除字符串字符
- Javascript Lingo游戏-字符串字符等于另一个字符串字符
- jQuery替换字符串字符的方法
- Javascript字符串字符检查
- Javascript替换字符串字符
- Javascript的变化与重复(组合)缺失的字符串字符