html - 如何阻止随机名称生成器在刷新时更改名称?
问题描述
我正在构建一个随机名称生成器,以便在网站页面加载时出现一个随机名称。我在编码方面没有那么有经验,所以请多多包涵。
我试过使用 localStorage 和 sessionStorage。
const firstNames = ["Emily","Hannah","Madison","Ashley","Sarah","Alexis","Samantha","Jessica","Elizabeth","Taylor","Lauren","Alyssa","Kayla","Abigail","Brianna","Olivia","Emma","Megan","Grace","Victoria","Rachel","Anna","Sydney","Destiny","Morgan","Jennifer","Jasmine","Haley","Julia","Kaitlyn","Nicole","Amanda","Katherine","Natalie","Hailey","Alexandra"];
const getRandomNumber = (max) => Math.floor(Math.random() * max);
const getRandomName = () =>
`${firstNames[getRandomNumber(firstNames.length)]}`;
document.getElementById('random-name').innerText = getRandomName();
解决方案
您可以在返回 getRandomName 函数之前将生成的名称保存在 localStorage 或 sessionStorage 中。存储后检查您的名称是否已在存储中可用,如果是,则使用它,否则生成将其保存到存储然后使用它。
const firstNames = ["Emily","Hannah","Madison","Ashley","Sarah","Alexis","Samantha","Jessica","Elizabeth","Taylor","Lauren","Alyssa","Kayla","Abigail","Brianna","Olivia","Emma","Megan","Grace","Victoria","Rachel","Anna","Sydney","Destiny","Morgan","Jennifer","Jasmine","Haley","Julia","Kaitlyn","Nicole","Amanda","Katherine","Natalie","Hailey","Alexandra"];
const getRandomNumber = (max) => Math.floor(Math.random() * max);
const getRandomName = () => {
window.localStorage.name = window.localStorage.name || firstNames[getRandomNumber(firstNames.length)];
return window.localStorage.name;
}
document.getElementById('random-name').innerText = getRandomName();
Name: <span id="random-name"></span>
`
推荐阅读
- c# - 我试图在 C# 控制台中编写一个小程序来读取 xml 文件的某些部分,但我得到一个错误
- amazon-web-services - AWS ECS CI/CD 停机时间
- javascript - DIV内的背景图片重复
- kotlin - 由于不同的列表对象导致重复代码
- c# - ASP.NET Core 5.0 RouteDataRequestCultureProvider 删除 url 中的默认区域性
- python - 如何将 Django 应用程序覆盖到 Pythonanywhere?3
- node.js - 错误!在创建新的反应原生项目时
- ios - 垂直旋转的 UIPageControl 占用太多空间
- python - 在 MySQL 中按文件扩展名过滤
- javascript - 在 React.tsx 中使用 createContext 传递 useState