每天为 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;
}

这可以根据您的需要进行更改^

因为它是伪随机的并且基于种子

,所以这一天对于每个用户都是一样的