每天为 JavaScript 中的所有用户生成一个号码
Generating a number once a day for all users in JavaScript
我对 JavaScript 比较陌生,我想创建类似 Wordle 克隆的东西。像 Wordle 一样,我想每天为所有用户生成一个新词。我见过使用随机数生成器将数字存储在本地存储中的解决方案。但是,这是否意味着访问该网站的每个用户都会有不同的号码?有没有一种简单的方法可以为网站上的所有用户生成相同的号码?
Localstorage是浏览器的一个特性,只存在于客户端。
您需要将数据保存在某处,数据库(MySQL、postgres 等)或文件中
最简单的方法是在文件中,您可以搜索Google“将数据保存到文件node.js”
您可以制作自己的伪随机生成器,它们实际上不是随机的,但它们会根据种子(即日期)生成数字
// Get the day of the month with Date object
const day = new Date().getDate();
// And the month to prevent repeats
const month = new Date().getMonth();
然后你就可以创建你的函数了。
为了让它看起来更加随机,你可以得到中间的数字并使用它们。
function random(){
// Crazy math stuff
let num = Math.round((day+4) / month * 39163).toString();
// To convert it back to a number, use the + operator before parentheses
// Don’t forget to use % on the max value, I just put 31 as a placeholder
return +(num[2] + num[3]) % 31;
}
这可以根据您的需要进行更改^
因为它是伪随机的并且基于种子
,所以这一天对于每个用户都是一样的
我对 JavaScript 比较陌生,我想创建类似 Wordle 克隆的东西。像 Wordle 一样,我想每天为所有用户生成一个新词。我见过使用随机数生成器将数字存储在本地存储中的解决方案。但是,这是否意味着访问该网站的每个用户都会有不同的号码?有没有一种简单的方法可以为网站上的所有用户生成相同的号码?
Localstorage是浏览器的一个特性,只存在于客户端。
您需要将数据保存在某处,数据库(MySQL、postgres 等)或文件中
最简单的方法是在文件中,您可以搜索Google“将数据保存到文件node.js”
您可以制作自己的伪随机生成器,它们实际上不是随机的,但它们会根据种子(即日期)生成数字
// Get the day of the month with Date object
const day = new Date().getDate();
// And the month to prevent repeats
const month = new Date().getMonth();
然后你就可以创建你的函数了。
为了让它看起来更加随机,你可以得到中间的数字并使用它们。
function random(){
// Crazy math stuff
let num = Math.round((day+4) / month * 39163).toString();
// To convert it back to a number, use the + operator before parentheses
// Don’t forget to use % on the max value, I just put 31 as a placeholder
return +(num[2] + num[3]) % 31;
}
这可以根据您的需要进行更改^
因为它是伪随机的并且基于种子
,所以这一天对于每个用户都是一样的