我这里有这段代码:
<script>
const stored = localStorage[location.href]
const number = stored || Math.floor(Math.random() * 6) + 2
document.getElementById("n1").innerHTML = number
if ( !stored ) localStorage[location.href] = number
</script>
<div>
The first number is <span id="n1"></span>.
</div>
显示 2~6 之间的随机数并将其保存到用户的缓存中,因此如果他重新加载页面,相同的数字将再次出现。但我现在要做的是显示第二个数字,我正在尝试这样做:
<script>
const stored2 = localStorage[location.href]
const number2 = stored2 || Math.floor(Math.random() * 8) + 3
document.getElementById("n2").innerHTML = number2
if ( !stored2 ) localStorage[location.href] = number2
</script>
<div>
The second number is <span id="n2"></span>.
</div>
但是 <span id="n2"></span>
显示的数字始终与 <span id="n1"></span>
中的数字相同.我猜这与用户缓存中的本地存储有关。如何让它显示 2 个不同的数字,但将这些数字继续存储在用户的缓存中,以便在他重新加载页面时显示相同的 2 个数字?
提前致谢
最佳答案
您已将两个数字存储在 localStorage
中的同一键 (location.href
) 下,因此第二个数字将覆盖第一个数字。
您需要使用不同的键或将数字存储在 JSON 字典中并改为存储它。
关于javascript - 使用 Javascript 显示 2 个随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55622732/