node.js - 如何从数组中选择一个随机字符串?
问题描述
我正在尝试从字符串数组中选择一个随机单词,但无法弄清楚如何。
我已经对此进行了研究,这是我目前所拥有的:
roast.js
const roastList = [
'Apples',
'Bananas',
'Pears',
];
const roast = roastList[Math.floor(Math.random() * roastList.length)];
module.exports = {
roast
};
index.js:
case 'roast':
if (!message.mentions.users.size) {
return message.reply('you need to tag a user in order to roast them!');
}
message.channel.send(`Hey ${taggedUser}, ${roast}`);
break;
我复制了代码,所以水果是占位符。希望每次输出烤肉都能得到不一样的水果。
解决方案
这里的问题是模块代码只会运行一次,这意味着第一次加载模块时只会选择一个“烘焙”。您想将“烘烤”选择逻辑包装在一个函数中,每次您想“烘烤”某人时都可以调用该函数。
考虑将roast.js
export 设为函数:
const roastList = [
'Apples',
'Bananas',
'Pears'
];
module.exports = function () {
return roastList[Math.floor(Math.random() * roastList.length)];
};
然后在模板中调用该函数:
const roast = require('./roast.js');
...
message.channel.send(`Hey ${taggedUser}, ${roast()}`);
推荐阅读
- javascript - 如何将 ACF 字段作为类添加到 div
- python - Python将立体声.flac转换为单声道
- excel - 如果在excel中嵌套
- python - 优化线性方程以获得最大最小值
- typescript - 如何将 VS Code 的大纲同步到编辑器中的当前位置
- ios - 可以将 Swift REPL 嵌入到 macOS 或 iOS 应用程序中吗?
- kubernetes - 如何在 GKE 中使用 ReadWriteMany 创建持久卷声明?
- jquery - 升级到 Bootstrap 4、jQuery 3.3.1 后 jQuery .show() /.hide() 无法正常工作
- html - 更改线条系列的颜色
- php - 如何通过 PHP 执行 Google Cloud Function?