繁体   English   中英

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

[英]Generate random numbers from string in JavaScript

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

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

如何用JavaScript编写此函数?

我当前的解决方案使用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];
}

也许稍后再过一阵子,因为所讨论的lib具有您可能不使用的许多功能,但是我一直在项目中包含此功能,因此让我将解决方案暴露给您遇到的同样问题。 这个库可以用一个种子来初始化机会js#seed ),对于创建可重复的结果非常有用:

const Chance = require('chance');
c1 = Chance('email@gmail.com', 'maybe a uuid here');
c1.integer();
c1.natural({min:1000,max:9999});

c2 = Chance('foo-baz-bar');
c2.string();
c2.word();
...

希望这可以帮助。

var availNum= [1, 4, 5, 6, 7, 8, 12];
//@var count number of random num you want 
function createRandomData(count) {
    var data = [],
    for (var i = 0; i < count; i++) {
        var random = availNum[Math.floor(Math.random() * availNum.length)],

        data.push({
          random:random 
        });
    }
    return data;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM