在 JavaScript 中从字符串生成随机数

Dan*_*fel 3 javascript random ab-testing

我想制作一个客户端 A/B 测试库。

每个用户都有一个存储在 cookie 中的随机数。每个测试都有一个测试名称和一系列选项。我需要一个函数,根据用户的随机数、测试名称和选项来选择随机选项。当然,该函数必须始终为给定的一组输入返回相同的选项。

我如何用 JavaScript 编写这个函数?

Dan*_*fel 5

我当前的解决方案使用CryptoJS 库的 MD5哈希函数来生成随机数:

// seed is the user's random number

choose_option = function(seed, test_name, options) {
  word = CryptoJS.MD5("" + seed + test_name).words[0]; // take first 32-bit word
  i = Math.abs(word % options.length);
  return options[i];
}
Run Code Online (Sandbox Code Playgroud)