如何检测按钮点击生成的随机数是否重复?(JavaScript)
解决随机数重复提示问题
你需要先记录上一次生成的随机数,才能判断当前数字是否重复。原来的代码里的if (numRandom)逻辑完全不对——它只是在数字不为0时触发,根本没做重复判断。
修改后的代码如下:
// 声明变量保存上一次的随机数,初始值设为null(不在0-8范围内) let lastNum = null; btnRandom.addEventListener('click', function () { const numRandom = Math.trunc(Math.random() * 9); console.log(numRandom); // 判断当前数字是否和上一次重复 if (numRandom === lastNum) { console.log('该数字已重复'); // 如果想在页面上显示提示,可替换成下面的方式: // alert('该数字已重复'); // 或者用页面元素展示:document.getElementById('tip').textContent = '该数字已重复'; } else { // 数字不重复时,更新图片并记录当前数字为上一次的结果 characterEl.src = `img/genshin_characters/card-${numRandom}.webp`; lastNum = numRandom; } });
关键说明:
lastNum要定义在事件监听函数外面,这样每次点击按钮都能保留上一次的数字记录- 只有当新生成的数字和上一次不同时,才更新图片;如果重复,只显示提示,不更换图片
- 控制台提示可以换成弹窗(
alert)或者页面内的提示元素,根据你的需求调整
内容的提问来源于stack exchange,提问作者Alazy99
相关产品推荐
相关产品推荐

