javascript - 如何阻止我的程序连续两次输出相同的内容?
问题描述
因此,我创建了这个 HTML 页面,其中包含一些 JavaScript。我有这个按钮,可以输出六个表情符号中的一个。它工作得很好,然后我添加了一些代码来阻止程序连续两次输出相同的表情符号,但它没有任何区别,我不知道为什么。
这是我的代码:
function randEmoji()
{
var oldEmoji = emoji;
var emojiList = [";)", ":D", "xD", ":O", ":X", ":P"];
var emoji = emojiList[Math.floor(Math.random() * emojiList.length)];
if (oldEmoji == emoji)
{
randEmoji();
}
else
{
document.getElementById("emojiText").innerHTML = "Look how fun! ---> " + emoji + " <--- An emoji!";
console.log(emoji);
}
}
我不是很擅长编程,也不知道是什么导致了这个问题。
请帮我!
解决方案
您必须在函数外部声明变量并将它们设置在内部。否则它们的值会在每个函数调用中被重置。
尝试这个:
var oldEmoji = '';
var emoji = '';
var emojiList = [";)", ":D", "xD", ":O", ":X", ":P"];
function randEmoji() {
oldEmoji = emoji;
emoji = emojiList[Math.floor(Math.random() * emojiList.length)];
if (oldEmoji == emoji) {
randEmoji();
} else {
console.log(emoji);
}
}
var i = 0;
while (i < 20) {
randEmoji();
i += 1;
}
推荐阅读
- git - gitlab-runner 克隆代码失败,请求的 URL 返回错误:500
- php - Woocommerce 相关产品的属性,图片中缺少产品链接
- winapi - 为什么当父窗口处于全屏模式时子窗口不显示?
- php - 验证和验证
- cdi - 启用 CDI 时在 log4j2 的依赖项上遇到 UnsupportedClassVersionError
- javascript - 我如何使用表单中提供的坐标来使用 jquery 定位元素
- python - 如何在我的代码中修复“ValueError:int() 的无效文字,基数为 10:''”
- django - django nginx:如何解决服务器错误(500)?
- eclipse - 如何在 Eclipse 4.11.0 上安装 StatET
- javascript - Angular 7 中的控制器在哪里,因为它遵循 mvc 架构