javascript - 在数组中选择一个随机短语
问题描述
有人可以解释为什么这对我不起作用吗?我有一个数组,我想从中选择一个随机字符串。不幸的是,当我执行它时它会随机选择一个短语,但是如果我再次运行它总是会选择相同的字符串?
let random = ['OMG...try again!', 'Try harder!', 'You can do better than you!', 'This is easy!', 'Too high!', 'Keep guessing']
let randomPick = random[Math.floor(Math.random() * random.length)];
console.log(randomPick);
这是我使用控制台进行测试时发生的情况。
解决方案
let random = ['OMG...try again!', 'Try harder!', 'You can do better than you!', 'This is easy!', 'Too high!', 'Keep guessing']
let randomPick = random[Math.floor(Math.random() * random.length)];
console.log(randomPick);
console.log(randomPick);
console.log(randomPick);
console.log(randomPick);
您的代码功能工作得很好——但是当您再次运行最后一行时,您只是在打印一个变量,而不是再次运行随机选择。
console.log(randomPick);
打印出 variable 的内容,该变量randomPick
在您的数组中分配了一个随机元素,一次。
为了console.log(randomPick);
每次都打印一个新短语,您需要转换randomPick
为函数而不是变量:
function randomPick() {
let random = ['OMG...try again!', 'Try harder!', 'You can do better than you!', 'This is easy!', 'Too high!', 'Keep guessing'];
return random[Math.floor(Math.random() * random.length)];
}
console.log(randomPick());
console.log(randomPick());
console.log(randomPick());
console.log(randomPick());
推荐阅读
- facebook - Facebook Limited 登录并在会话之间保留访问令牌
- database - 是否可以使用 BASE-fashioned 数据库实现 Exacly Once Semantics?
- sql - 数字数据类型 oracle 的默认值的正确格式
- laravel - laravel 集体选择的默认值
- javascript - 过渡不适用于 div - vanilla js 手风琴
- regex - 赛普拉斯断言失败,包含方法的正则表达式
- firebase - 使用 Firebase 函数创建、访问和读取日志的最佳方式
- java - 应用程序在重启时重新消费整个 Kafka 主题
- r - 从表格格式到列表
- html - 元素网格定位